WiseAI

WiseAI (1.5.4)

Download OpenAPI specification:Download

WiseAI App for Hanwha camera

Capability

Get Services

Gets the list of services supported, based on request can optionally include the service details for each service.

Common Event

When the app's settings are changed, a setting change event will be delivered in following formats. The AppSettingChanged event is generated only in JSON schema format.

ONVIF EVENT / META

TOPIC

tns1:OpenApp/WiseAI/AppSettingChanged

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<AppSettingChanged wstop:topic="true" xmlns:tt="http://www.onvif.org/ver10/schema">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="Path" Type="xsd:string"/>
    </tt:Data>
  </tt:MessageDescription>
</AppSettingChanged>

SUNAPI EVENT STATUS

SCHEMABASED

JSON RESPONSE
{
  "EventName": "OpenSDK.WiseAI.AppSettingChanged",
  "Time": "2021-10-27T07:36:14.509+00:00",
  "Source": {
    "Channel": 0,
    "AppName": "WiseAI",
    "AppEvent": "AppSettingChanged",
    "AppID": "WiseAI",
    "Type": "Event",
    "RuleIndex": 1,
    "VideoSourceToken": "VideoSourceToken-0"
  },
  "Data": {
    "Path": "/configuration/objectdetection"
  }
}   
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

includeDetails
boolean

Optional capability include service details, if set to true response will also have service details.

Responses

Response samples

Content type
application/json
{
  • "appName": "string",
  • "modelName": "string",
  • "appVersion": "string",
  • "cgiVersion": "string",
  • "manufacturer": "string",
  • "language": "English",
  • "maxChannels": 0,
  • "serviceCapabilities": [
    ]
}

Get configuration capability

Get service level capability for each channel, client can decide which api is supported and for which channel

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "capabilities": [
    ]
}

Get search capability

Gets the service capability, client can decide which api is supported and for which channel

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "systemlog": true,
  • "systemlogTypes": [
    ],
  • "utcTimeSearch": true,
  • "localTimeSearch": true,
  • "capabilities": [
    ]
}

AI Settings

Get AI settings

Get AI configurations, a device that indicates capability of aisettings in getcapability command shall support this command. This API can selects channels to enable AI features, and if you turn off a channel, all AI features on that channel will be automatically disabled. Conversely, if a particular AI channel is turned off, it will automatically be turned on when you turn on one of that channel's AI events. If an event setting cannot be turned on due to limitations, it responds with an error code 617 Configuration Limited.

Authorizations:
digestAuth

Responses

Response samples

Content type
application/json
{
  • "aiSettings": [
    ]
}

Update AI settings

Update AI settings, a device that indicates capability of aisettings in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
Array of objects (AISettingsElement)
Array
channel
required
integer <int32>
enable
boolean

Responses

Request samples

Content type
application/json
{
  • "aiSettings": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get AI settings options

Get AI settings options, a device that indicates capability of aisettings in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "maxAvailableChannels": 0,
  • "isReadonly": true,
  • "aiSettingsOptions": [
    ]
}

Object Detection

Get object detection configurations

Get the object detection event configurations, a device that indicates capability of objectdetection in getcapability command shall support this command. When this objectdetection feature is enabled event will be delivered in following formats.

ONVIF EVENT / META

TOPIC

tns1:OpenApp/WiseAI/ObjectDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<ObjectDetection wstop:topic="true" xmlns:tt="http://www.onvif.org/ver10/schema">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="ClassTypes" Type="tt:StringList"/>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</ObjectDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.ObjectDetection=True
Channel.0.OpenSDK.WiseAI.ObjectDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.ObjectDetection=True
Channel.0.OpenSDK.WiseAI.ObjectDetection.1.VideoSourceToken=Token1
Channel.0.OpenSDK.WiseAI.ObjectDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.ObjectDetection.1.ClassType=Person Vehicle
Channel.0.OpenSDK.WiseAI.ObjectDetection.1.State=True
JSON RESPONSE
{
  "EventName": "OpenSDK.WiseAI.ObjectDetection",
  "Time": "2021-10-27T07:36:14.509+00:00",
  "Source": {
    "Channel": 0,
    "AppName": "WiseAI",
    "AppEvent": "ObjectDetection",
    "AppID": "WiseAI",
    "Type": "Event",
    "RuleIndex": 1,
    "VideoSourceToken": "VideoSourceToken-0",
    "RuleName": "Rule1",
  },
  "Data": {
    "ClassTypes": "Person Vehicle",
    "State": true
  }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "objectDetection": [
    ]
}

Update objectdetection configuration

object detecion setting, a device that indicates capability of objectdetection in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
duration
integer <int32>

Minimum duration for which object is detected before raising event. Valid range is provided in options.

objectTypes
Array of strings

List of objectTypes to be detected, supported list is provided in options. Eg, Face, Vehicle, Person etc.,

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "duration": 0,
  • "objectTypes": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get objectdetection options

Get the object detection event configurations options, a device that indicates capability of objectdetection in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "objectDetectionOptions": [
    ]
}

Image Transfer

Get imagetransfer configurations

To get the list of object types for which imagetransfer is supported. Only for provided object type, meta image sending would be supported, a device that indicates capability of imagetransfer in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "imageTransfer": [
    ]
}

Update imagetransfer configurations

To set the list of object types for which imagetransfer is required. Only for provided object type, image sending would be supported. A device that indicates capability of imagetransfer in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
objectTypes
Array of strings

List of objectTypes to be detected, supported list is provided in options. Eg, Face, Vehicle, Person etc.,

imageQuality
integer <int32> [ 1 .. 100 ]

Parameter to control the quality of image, 100 refers to highest quality image.

base64ObjectImage
boolean

Whether to include base64 image in metadata

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "objectTypes": [
    ],
  • "imageQuality": 1,
  • "base64ObjectImage": true
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get image transfer options

To provide the supported object types for which image transfer is possible. ObjectTypes signalled here can be used in imagetransfer api, a device that indicates capability of imagetransfer in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "imageTransferOptions": [
    ]
}

Meta Transfer

Get meta transfer configurations

To get list of object types that provide meta transfer. Only for provided object type, frame metadata with detail attribute would be sended, Indicates that the device will support this command if the getcapability command specifies that the Metadata is "Detailed".

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "metaTransfer": [
    ]
}

Update metatransfer configurations

To set the list of object types for which detail metatransfer is required. Only for provided object type, frame metadata with detail attribute would be sended, Indicates that the device will support this command if the getcapability command specifies that the Metadata is "Detailed".

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
objectTypes
Array of strings

List of objectTypes to be sended detail metadata attributes, supported list is provided in options. Eg, Face, Vehicle, Person etc.,

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "objectTypes": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get metatransfer options

To provide the supported attribute types for which meta attribute transfer is possible. ObjectTypes signalled here can be used in metatransfer api. Indicates that the device will support this command if the getcapability command specifies that the Metadata is "Detailed".

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "metaTransferOptions": [
    ]
}

IVA Area

Get IVA area configurations

Get the area based analytics configurations. Area based analytics configurations, a device that indicates capability of ivaarea in getcapability command shall support this command. When this ivaarea feature is enabled event will be delivered following below schema format.

ONVIF EVENT / META

SCHEMA Topic:

tns1:OpenApp/WiseAI/IvaArea

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<IvaArea wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="ObjectId" Type="tt:StringList"/>
      <tt:SimpleItemDescription Name="Action" Type="tt:StringList"/>
    </tt:Data>
  </tt:MessageDescription>
</IvaArea>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.IvaArea=True
Channel.0.OpenSDK.WiseAI.IvaArea.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.IvaArea=True
Channel.0.OpenSDK.WiseAI.IvaArea.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.IvaArea.1.RuleName=Rule1
Channel.0.OpenSDK.WiseAI.IvaArea.1.State=True
Channel.0.OpenSDK.WiseAI.IvaArea.1.ObjectId=1
Channel.0.OpenSDK.WiseAI.IvaArea.1.Action=Intrusion
Channel.0.OpenSDK.WiseAI.IvaArea.2.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.IvaArea.2.RuleName=Rule2
Channel.0.OpenSDK.WiseAI.IvaArea.2.State=True
Channel.0.OpenSDK.WiseAI.IvaArea.2.ObjectId=2
Channel.0.OpenSDK.WiseAI.IvaArea.2.Action=Enter
JSON RESPONSE
{
  "EventName": "OpenSDK.WiseAI.IvaArea",
  "Time": "2021-10-27T07:36:14.509+00:00",
  "Source": {
    "Channel": 0,
    "AppName": "WiseAI",
    "AppID": "WiseAI",
    "AppEvent": "IvaArea",
    "Type": "Event",
    "RuleIndex": 1,
    "VideoSourceToken": "VideoSourceToken-0",
    "RuleName": "Rule1",
  },
  "Data": {
    "State": true,
    "ObjectId": "1",
    "Action": "Enter"
  }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "ivaArea": [
    ]
}

Update IVA area configurations

Update or enable area based analytics configuration. Area based analytics configurations, a device that indicates capability of ivaarea in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (IvaAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
detectionModes
Array of strings

can be used to set detection types Enter,Exit, Loitering, based on the values provided in ivaarea/options response.

appearanceDuration
integer <int32>

duration in secs refer to corresponding options for valid range.

intrusionDuration
integer <int32>

duration in secs refer to corresponding options for valid range.

loiteringDuration
integer <int32>

duration in secs refer to corresponding options for valid range.

objectTypeFilter
Array of strings

optional object type filter, when set the rule will be active only for the configured object types

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "definedArea": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get IVA area options

Provide allowed values of each parameters in area based analytics configuration. Ranges of parameters in area based analytcis configuration, a device that indicates capability of ivaarea in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "ivaAreaOptions": [
    ]
}

Delete IVA defined area

Delete the area for the requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Line Crossing

Get line crossing configurations

Get the line based analytics configurations. Line based analytics configurations, a device that indicates capability of linecrossing in getcapability command shall support this command. When linecrossing feature is enabled event will be delivered following below schema format.

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/LineCrossing

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<LineCrossing wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="ObjectId" Type="tt:StringList"/>
      <tt:SimpleItemDescription Name="Action" Type="tt:StringList"/>
    </tt:Data>
  </tt:MessageDescription>
</LineCrossing>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.LineCrossing=True
Channel.0.OpenSDK.WiseAI.LineCrossing.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.LineCrossing=True
Channel.0.OpenSDK.WiseAI.LineCrossing.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.LineCrossing.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.LineCrossing.1.State=1
Channel.0.OpenSDK.WiseAI.LineCrossing.1.ObjectId=1
Channel.0.OpenSDK.WiseAI.LineCrossing.1.Action=Left
JSON RESPONSE
{
  "EventName": "OpenSDK.WiseAI.LineCrossing",
  "Time": "2021-10-27T07:36:14.509+00:00",
  "Source": {
    "Channel": 0,
    "AppName": "WiseAI",
    "AppID": "WiseAI",
    "AppEvent": "LineCrossing",
    "Type": "Event",
    "RuleIndex": 1,
    "VideoSourceToken": "VideoSourceToken-0",
    "RuleName": "RuleName1",
  },
  "Data": {
    "State": true,
    "ObjectId": "1"
  }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "lineCrossing": [
    ]
}

Update line crossing configurations

Update or enable line based analytics configuration. Line based analytics configurations, a device that indicates capability of linecrossing in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (LineCrossingElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

Array of objects (CoordinatePoint) >= 2 items

Line coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 2 items)
x
required
integer <int32>
y
required
integer <int32>
mode
string
Enum: "Off" "Left" "Right" "BothDirections"
objectTypeFilter
Array of strings

optional object type filter, when set the rule will be active only for the configured object types

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "line": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get line crossing options

Provide allowed values of each parameters in line based analytics configuration. Ranges of parameters in line based analytcis configuration, a device that indicates capability of linecrossing in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "lineCrossingOptions": [
    ]
}

Delete linecrossing line

Delete the lines based on requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Analytics Exclude Settings

Get the exclude region settings

Common exclude region settings for all analytics detections

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "excludeAreaConfiguration": [
    ]
}

Update the exclude region settings

Update the common exclude region settings

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enableObjectMeta
boolean

When enabled object metadata would be generated for exclude regions.

Array of objects (ExcludeAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Name of the exclude region

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enableObjectMeta": true,
  • "excludeAreas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the exclude region setting options

Provide allowed values of each parameters in analyticexcludesettings configuration. Ranges of parameters and max supported regions are provided here

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "excludeAreaConfigurationOptions": [
    ]
}

Delete exclude area

Delete the excludearea based on requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Social Distancing Violation

Get social distancing violation detection configurations

Gets the social distancing violation detecion settings.

SocialDistancingViolation Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/SocialDistancingViolation

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<SocialDistancingViolation wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="ObjectId" Type="tt:StringList"/>
    </tt:Data>
  </tt:MessageDescription>
</SocialDistancingViolation>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.SocialDistancingViolation=True
Channel.0.OpenSDK.WiseAI.SocialDistancingViolation.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.SocialDistancingViolation=True
Channel.0.OpenSDK.WiseAI.SocialDistancingViolation.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.SocialDistancingViolation.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.SocialDistancingViolation.1.State=True
Channel.0.OpenSDK.WiseAI.SocialDistancingViolation.1.ObjectId=1 2 3 4
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.SocialDistancingViolation",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "SocialDistancingViolation",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
        "ObjectId": "1 2 3 4"
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "socialDistancingViolation": [
    ]
}

Update social distancing violation detection configurations

Configures the social distancing violation detection settings, for supported values and ranges refer to socialdistancingviolation/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
enable
boolean
cameraHeight
number <double>

Camera height from floor (unit depends on distanceUnit setting)

tilt
number <double>
roll
number <double>
focalLength
number <double>
minimumAllowedDistance
number <double>
duration
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "cameraHeight": 0.1,
  • "tilt": 0.1,
  • "roll": 0.1,
  • "focalLength": 0.1,
  • "minimumAllowedDistance": 0.1,
  • "duration": 0
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get social distancing violation options

Supported values and ranges reguired for configuring socialdistancing violation is provided in response.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "socialDistancingViolationOptions": [
    ]
}

Facemask Detection

Get facemask detection configurations

gets the face mask detection settings that is configured. Can check if this feature is supported from the configuration/capability response.

MaskDetection Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/MaskDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<MaskDetection wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="ObjectId" Type="xsd:integer"/>
    </tt:Data>
  </tt:MessageDescription>
</MaskDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.MaskDetection=True
Channel.0.OpenSDK.WiseAI.MaskDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.MaskDetection=True
Channel.0.OpenSDK.WiseAI.MaskDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.MaskDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.MaskDetection.1.State=True
Channel.0.OpenSDK.WiseAI.MaskDetection.1.ObjectId=1
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.MaskDetection",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "MaskDetection",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
        "ObjectId": 1
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "faceMaskDetection": [
    ]
}

Update face mask detection configurations

Configures the face mask detection settings, for supported values and ranges refer to facemaskdeteciton/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
enable
boolean
detectionMode
string
Enum: "Mask" "NoMask"
duration
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "detectionMode": "Mask",
  • "duration": 0
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get facemask detection options

Supported values and ranges reguired for configuring face mask detection is provided in response.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "faceMaskDetectionOptions": [
    ]
}

Stopped Vehicle Detection

Get the stopped-vehicle detection configurations

Area and rule based stopped-vehicle detection configurations, a device that indicates capability of stoppedvehicledetection in getcapability command shall support this command. When StoppedVehicleDetection is enabled, event is delivered in below formats,

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/StoppedVehicleDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<StoppedVehicleDetection wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="VehicleTypes" Type="tt:StringList"/>
      <tt:SimpleItemDescription Name="ObjectIDs" Type="tt:StringList"/>
    </tt:Data>
  </tt:MessageDescription>
</StoppedVehicleDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.StoppedVehicleDetection=True
Channel.0.OpenSDK.WiseAI.StoppedVehicleDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.StoppedVehicleDetection=True
Channel.0.OpenSDK.WiseAI.StoppedVehicleDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.StoppedVehicleDetection.1.RuleName=rulename
Channel.0.OpenSDK.WiseAI.StoppedVehicleDetection.1.State=True
Channel.0.OpenSDK.WiseAI.StoppedVehicleDetection.1.VehicleTypes=Car Bus Truck Motorcycle Bicycle
Channel.0.OpenSDK.WiseAI.StoppedVehicleDetection.1.ObjectIDs=258 260 261 278 280
JSON RESPONSE
{
  "EventName": "OpenSDK.WiseAI.StoppedVehicleDetection",
  "Time": "2021-10-27T07:36:14.509+00:00",
  "Source": {
    "Channel": 0,
    "AppName": "WiseAI",
    "AppID": "WiseAI",
    "AppEvent": "StoppedVehicleDetection",
    "Type": "Event",
    "RuleIndex": 1,
    "VideoSourceToken": "VideoSourceToken-0",
    "RuleName": "rulename"
  },
  "Data": {
    "State": true,
    "VehicleTypes": "Car Bus Truck Motorcycle Bicycle",
    "ObjectIDs": "258 260 261 278 280"
  }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "stoppedVehicleDetectionConfiguration": [
    ]
}

Update stopped-vehicle detection configurations

Area and rule based stopped-vehicle detection configurations, a device that indicates capability of stoppedvehicledetection in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (StoppedVehicleDetectionArea)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

Array of objects (StoppedVehicleDetectionType) non-empty unique
Array (non-empty)
vehicleType
string
Enum: "Car" "Bus" "Truck" "Motorcycle" "Bicycle"

Specifies the list of supported vehicle types like, Car, Bus, Truck, Motorcycle, Bicycle

enable
boolean
duration
integer <int32>
Deprecated

minutes of duration for the stopped-vehicle event to occur. This item is deprecated. Use totalDurationSeconds instead.

durationSeconds
integer <int32>
Deprecated

seconds of duration for the stopped-vehicle event to occur. This item is deprecated. Use totalDurationSeconds instead.

totalDurationSeconds
integer <int32>

total seconds of duration for the stopped-vehicle event to occur. If this parameter is setted duration and durationSeconds parameters will ignored

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
enableSchedule
boolean

Whether this feature runs on a schedule. this setting is only available if the schedule is supported by the getcapability command.

scheduleName
string

The name of the schedule. See /configuration/schedule for a list of names for the schedule, and this setting is only available if the schedule is supported by the getcapability command.

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "detectionArea": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get stopped-vehicle detection options

Provide allowed values of each parameters in stopped-vehicle detection configuration. Ranges of parameters in stopped-vehicle detection configuration, a device that indicates capability of stoppedvehicledetection in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "stoppedVehicleDetectionOptions": [
    ]
}

Delete stopped-vehicle detection areas

Delete the area for the requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Traffic Jam Detection

Get the traffic-jam detection configurations

line based traffic-jam detection configurations, a device that indicates capability of trafficjamdetection in getcapability command shall support this command. When traffic-jam detection is enabled, event is delivered in below formats,

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/TrafficJamDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<TrafficJamDetection wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</TrafficJamDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.TrafficJamDetection=True
Channel.0.OpenSDK.WiseAI.TrafficJamDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.TrafficJamDetection=True
Channel.0.OpenSDK.WiseAI.TrafficJamDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.TrafficJamDetection.1.RuleName=rulename
Channel.0.OpenSDK.WiseAI.TrafficJamDetection.1.State=True
JSON RESPONSE
{
  "EventName": "OpenSDK.WiseAI.TrafficJamDetection",
  "Time": "2021-10-27T07:36:14.509+00:00",
  "Source": {
    "Channel": 0,
    "AppName": "WiseAI",
    "AppID": "WiseAI",
    "AppEvent": "TrafficJamDetection",
    "Type": "Event",
    "RuleIndex": 1,
    "VideoSourceToken": "VideoSourceToken-0",
    "RuleName": "rulename"
  },
  "Data": {
    "State": true
  }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "trafficJamDetectionConfiguration": [
    ]
}

Update traffic-jam detection configurations

line based traffic-jam detection configurations, a device that indicates capability of trafficjamdetection in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
distanceSpeedUnit
string
Array of objects (TrafficJamDetectionRule)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters
object (TrafficJamDetectionRule_lines)

Objects that configure the start and end lines for detecting passing vehicles

required
Array of objects (CoordinatePoint) >= 2 items

Start Line Coordinates

Array (>= 2 items)
x
required
integer <int32>
y
required
integer <int32>
required
Array of objects (CoordinatePoint) >= 2 items

End Line Coordinates

Array (>= 2 items)
x
required
integer <int32>
y
required
integer <int32>
distance
number <double>

Approximate distance between start line and end line. Unit of distance is based on the distanceSpeedUnit parameter.

speed
integer <int32>

Speed of vehicle, if vehicles are moving below this speed event would be generated. Unit depends on distanceSpeedUnit parameter.

time
integer <int32>

If vehicles are moving at configured speed for this duration, event is generated. Time is configured in Minutes.

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "distanceSpeedUnit": "string",
  • "detectionRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get traffic-jam detection options

Provide allowed values of each parameters in traffic-jam detection configuration. Ranges of parameters in traffic-jam detection configuration, a device that indicates capability of trafficjamdetection in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "trafficJamDetectionOptions": [
    ]
}

Delete Traffic-Jam detection rules

Delete the rule for the requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Queue Management

Get QueueManagement configuration

Gets the queuemanagement configuration, suppport only if queuemanagement capability is set to true.

QueueMedium Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/QueueMedium

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<QueueMedium wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</QueueMedium>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.QueueMedium=True
Channel.0.OpenSDK.WiseAI.QueueMedium.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.QueueMedium=True
Channel.0.OpenSDK.WiseAI.QueueMedium.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.QueueMedium.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.QueueMedium.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.QueueMedium",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "QueueMedium",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
    }
}

QueueHigh Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/QueueHigh

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<QueueHigh wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</QueueHigh>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.QueueHigh=True
Channel.0.OpenSDK.WiseAI.QueueHigh.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.QueueHigh=True
Channel.0.OpenSDK.WiseAI.QueueHigh.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.QueueHigh.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.QueueHigh.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.QueueHigh",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "QueueHigh",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
    }
}

QueueCountChanged Event

The QueueCountChanged event is generated only in JSON schema format, this event occurs only when the Count value is changed. "Count" data in ONVIF/SUNAPI event is counted over 1 second, not cumulative value. Also, if you want to know the counting result for a specific period, check the contents of "search/queuemanagement"

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/QueueCountChanged

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<QueueCountChanged wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSource" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="Count" Type="xsd:integer"/>
    </tt:Data>
  </tt:MessageDescription>
</QueueCountChanged>

SUNAPI EVENT STATUS

SCHEMABASED

JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.QueueCountChanged",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "QueueCountChanged",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "Count": 3
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "queuemanagementConfigurations": [
    ]
}

Set QueueManagement configuration

Configures the QueueManagement settings. For the supported values refer to queuemanagement/options response.

  • NOTE: The count of queueLevelMedium is automatically set to half of the count value of queueLevelHigh. Therefore, even if you set the count value of queueLevelMedium, that value is ignored.
Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (QueueElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Queue Name

enable
boolean
maxCount
integer <int32>
Array of objects (CoordinatePoint) >= 4 items

Queue Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
object (QueueLevelConfiguration)
count
integer <int32>
enableEventNotification
boolean
duration
integer <int32>
object (QueueLevelConfiguration)
count
integer <int32>
enableEventNotification
boolean
duration
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "queues": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get QueueManagement options

Provides the supported values and ranges for the QueueManagement configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "queuemanagementConfigurationOptions": [
    ]
}

Delete queuemanagement rule

Delete an queue area based on requested queue index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get QueueManagement reporting configuraiton

Provides the reporting configuration of queuemanagement

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurations": [
    ]
}

Update QueueManagement reporting configuration

Configures the QueueManagement reporting configuration, for supported values refer to queuemanagement/report/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (RuleReportingConfiguration)
Array
index
integer <int32> >= 1

rule index

reportEnable
boolean
reportFileName
string [ 1 .. 63 ] characters
reportFileType
string
object (ReportingSchedule)
scheduleType
string
weekDay
string
Enum: "SUN" "MON" "TUE" "WED" "THU" "FRI" "SAT"
hour
integer <int32> [ 0 .. 23 ]
minute
integer <int32> [ 0 .. 59 ]

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "reportingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get QueueManagement reporting options

Provides the supported values and ranges for the QueueManagement reporting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurationOptions": [
    ]
}

Delete stored QueueManagement data

Clears the QueueManagement that is stored.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Initiate queuemanagement search

Initiate the queuemanagement search based on search time duration and returns a search token

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

fromDate
required
string <date-time>

To filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
required
string <date-time>

To filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

object (QueueSearchQueryObject)

Advanced result filtering based on queue name

Responses

Response samples

Content type
application/json
{
  • "searchToken": "SearchToken-122212"
}

Check the status of queuemanagement search

Search token can be used to check if the search status is complete.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
Example
{
  • "status": "Completed"
}

Cancel Queuemanagement Search Session

Client can cancel an intiated search session using this method. Should pass a valid search token to cancel.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the search results

Once the search is complete, using the search token queuemanagement results can be retreived.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "resultInterval": "Hourly",
  • "queues": [
    ]
}

Check the current queue count

Getting the live queue count

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

index
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Optional parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "queueCount": [
    ]
}

Heatmap

Get heatmap configuration

Get the heatmap configuration, supported only if heatmap capability is set to true.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmapConfigurations": [
    ]
}

Update heatmap configuration

Configures the heatmap settings. For the supported values refer to heatmap/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
backgroundColorMode
string
enableManualReferenceMode
boolean
manualReference
integer <int32>
Array of objects (ExcludeAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Name of the exclude region

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "backgroundColorMode": "string",
  • "enableManualReferenceMode": true,
  • "manualReference": 0,
  • "excludeAreas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get heatmap options

Provides the supported values and ranges for the heatmap configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmapConfigurationOptions": [
    ]
}

Delete heatmap exclude area

Delete the excludearea based on the requested exclude area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get heatmap reporting configuraiton

Provides the reporting configuration of heatmap

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurations": [
    ]
}

Set heatmap reporting configuration

Configures the heatmap reporting configuration, for supported values refer to heatmap/report/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (RuleReportingConfiguration)
Array
index
integer <int32> >= 1

rule index

reportEnable
boolean
reportFileName
string [ 1 .. 63 ] characters
reportFileType
string
object (ReportingSchedule)
scheduleType
string
weekDay
string
Enum: "SUN" "MON" "TUE" "WED" "THU" "FRI" "SAT"
hour
integer <int32> [ 0 .. 23 ]
minute
integer <int32> [ 0 .. 59 ]

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "reportingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get heatmap reporting options

Provides the supported values and ranges for the heatmap reporting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurationOptions": [
    ]
}

Delete stored heatmap data

Clears the heatmap that is stored.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Initiate heatmap search

Initiate the heatmap search based on search time duration and returns a search token

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

fromDate
required
string <date-time>

To filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
required
string <date-time>

To filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

resultFormat
string
Enum: "Image" "Json"

Optional format parameter to get the search result in requested format. Default format is image.

resultImageType
string
Enum: "WithBackground" "WithoutBackground"
Example: resultImageType=WithBackground

Optional result Image type selection, if not passed WithBackground will be selected. It's used when the resultFormat paramter is image

Responses

Response samples

Content type
application/json
{
  • "searchToken": "SearchToken-122212"
}

Check the status of search

Search token can be used to check if the search status is complete.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
Example
{
  • "status": "Completed"
}

Cancel Search Session

Client can cancel an intiated search session using this method. Should pass a valid search token to cancel.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the search results

Once the search is complete, using the search token heatmap image can be downloaded.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
<png image binary>

Check the current heatmap levels

Getting the live heatmap levels

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmap": [
    ]
}

Object Counting

Get ObjectCounting configuration

Generic object counting configuration, that can be used for counting objects that crosses the configured lines. For supported objecttypes you can refer to objectcounting/options command response.

Event Description

The ObjectCounting event is generated only in JSON schema format, this event occurs only when the Count value is changed.
Currently only "Punctual" ReportType is supported, but it may be extended to other ReportTypes such as "Summary" in the future.
"Count" data in ONVIF/SUNAPI event is counted over 1 second, not cumulative value.
Also, if you want to know the counting result for a specific period, check the contents of "search/objectcounting"

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/ObjectCounting

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<ObjectCounting wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSource" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="CountingRuleIndex" Type="xsd:integer"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="ReportType" Type="xsd:string"/>
      <tt:SimpleItemDescription Name="ObjectType" Type="xsd:string"/>
      <tt:SimpleItemDescription Name="Direction" Type="xsd:string"/>
      <tt:SimpleItemDescription Name="Count" Type="xsd:integer"/>
    </tt:Data>
  </tt:MessageDescription>
</ObjectCounting>

SUNAPI EVENT STATUS

SCHEMABASED

JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.ObjectCounting",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "ObjectCounting",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "CountingRuleIndex": 1,
        "RuleName": "rulename"
    },
    "Data": {
        "ReportType": "Punctual",
        "ObjectType": "Vehicle",
        "Direction": "IN",
        "Count": 3
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "objectCountingConfiguration": [
    ]
}

Set ObjectCounting configuration

Configurest the generic objectcounting rule, can be used to count objectypes provided in the objectcounting/options.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (ObjectCountingRule)
Array
index
integer <int32> >= 1
enable
boolean
objectType
string

check options command for supported objectTypes

Array of objects (ObjectCountingLine)
Array
index
integer <int32> >= 1
name
string [ 1 .. 45 ] characters
mode
string
Enum: "LeftToRightIn" "RightToLeftIn"
Array of objects (CoordinatePoint) >= 2 items

Line coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array of objects (ExcludeAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Name of the exclude region

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "countingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get ObjectCounting options

Provides the values supported in objectcounting rule

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "objectCountingConfigurationOptions": [
    ]
}

Delete counting rule line

Delete the line based on requested counting rule index and line index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

countingruleindex
required
integer >= 1

counting rule index in which the line has to be deleted

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Delete counting rule exclude area

Delete the excludearea based on the requested counting rule index and exclude area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

countingruleindex
integer >= 1

Optional counting rule index in which the exclude area has to be deleted

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get ObjectCounting reporting configuraiton

Provides the reporting configuration of ObjectingCounting

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurations": [
    ]
}

Set ObjectCounting reporting configuration

Configures the ObjectCounting reporting configuration, for supported values refer to objectcounting/report/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (OCCountingRuleReportingConfiguration)
Array
index
integer <int32> >= 1

counting rule index

reportEnable
boolean
reportFileName
string [ 1 .. 45 ] characters
reportFileType
string
object (ReportingSchedule)
scheduleType
string
weekDay
string
Enum: "SUN" "MON" "TUE" "WED" "THU" "FRI" "SAT"
hour
integer <int32> [ 0 .. 23 ]
minute
integer <int32> [ 0 .. 59 ]

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "countingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get object counting reporting options

Provides the supported values and ranges for the objectcounting reporting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurationOptions": [
    ]
}

Delete stored counting data

Clears the counting data that is stored.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

index
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Optional parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Initiate objectcounting search

Initiate the objectcounting search based on search time duration and returns a search token

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

fromDate
required
string <date-time>

To filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
required
string <date-time>

To filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

index
integer <int32> >= 1

Optional counting rule index to filter the result for the specified counting rule.

Responses

Response samples

Content type
application/json
{
  • "searchToken": "SearchToken-122212"
}

Check the status of objectcounting search

Search token can be used to check if the search status is complete.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
Example
{
  • "status": "Completed"
}

Cancel objectcounting Search Session

Client can cancel an intiated search session using this method. Should pass a valid search token to cancel.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the search results

Once the search is complete, using the search token objectcounting results can be retreived.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

query Parameters
includeAIData
boolean

Optional field to request AI data in the result

Responses

Response samples

Content type
application/json
{
  • "resultInterval": "Hourly",
  • "countingRules": [
    ]
}

Check the current object count

Getting the live object counting data

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

index
integer <int32> >= 1

Optional counting rule index to get the result for the specified counting rule. If index is not specified, index is specified as 1.

includeAIData
boolean

Optional field to request AI data in the result

Responses

Response samples

Content type
application/json
Example
{
  • "objectCountingLive": [
    ]
}

Slip And Fall Detection

Get Slip & fall detection settings

gets the slip and fall detection settings that is configured. Can check if this feature is supported from the configuration/capability response.

SlipAndFallDetection Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/SlipAndFallDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<SlipAndFallDetection wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="ObjectId" Type="xsd:integer"/>
    </tt:Data>
  </tt:MessageDescription>
</SlipAndFallDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.SlipAndFallDetection=True
Channel.0.OpenSDK.WiseAI.SlipAndFallDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.SlipAndFallDetection=True
Channel.0.OpenSDK.WiseAI.SlipAndFallDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.SlipAndFallDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.SlipAndFallDetection.1.State=True
Channel.0.OpenSDK.WiseAI.SlipAndFallDetection.1.ObjectId=1
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.SlipAndFallDetection",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "SlipAndFallDetection",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
        "ObjectId": 1
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "slipAndFallDetection": [
    ]
}

Update slip and fall detection setting.

Configures the slip and fall detection settings, for supported values and ranges refer to slipandfalldetection/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
enable
boolean
Array of objects (SlipAndFallDetectionAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "detectionAreas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Delete stored slip & fall detection areas

Delete the area for the requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Slip & fall detection options

Supported values and ranges reguired for configuring slip and fall detection is provided in response.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "slipAndFallDetectionOptions": [
    ]
}

Wise Detector

Get the wisedetector configuration

Gets the list of wisedetector models available and its configuration

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "wisedetectorConfigurations": [
    ]
}

Set the wisedetector configuration

Sets the confirguration for the wisedetector of a particular channel, multiple wisedetectors can be configured at the same time. Here objectName parameter cannot be changed, to change the object name please refer to "PUT /configuration/wisedetector/model"

Note

Please check the options reponse for the supported values.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (wisedetector)
Array
enable
required
boolean
objectName
required
string

ObjectName configured for modelID

sensitivity
integer <int32> [ 1 .. 100 ]

Higher the number higher the sensitivity.

Array of objects (ColorValue)

Optional Color list defining the color combination of the object to be detected. Would help in reducing false detections.

Array
rgbHexCode
required
string

rgbColor as hex code, example '#FF0000' refers RED

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "wisedetectors": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get options for the wisedetector configuration.

Based on this response, wisedetector can be configured.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "wisedetectorConfigurationOptions": [
    ]
}

Upload model data

Trained model data is uploaded using this api as binary file (application/octet-stream). Here channel parameter is used to associate the uploaded model file to a channel incase of multi channel camera. If the camera is single channel camera, channel '0' is used.

Authorizations:
digestAuth
query Parameters
objectName
required
string [ 1 .. 63 ] characters

Required objectName prameter.

channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

Request Body schema: application/octet-stream
required

Model file as binary content

string <binary>

Responses

Response samples

Content type
application/json
{
  • "modelID": "modelInd-1",
  • "modelOverwrite": true
}

Delete model data

Delete model data based on unique modelID.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

modelID
required
string

Required modelID prameter, unique identifier of the model data.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the list of model files

Get the complete list of model data available.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "modelDataConfiguration": [
    ]
}

Update modeldata configration

This api can be used to update objectName name of already uploaded model data based on modelID.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
Array of objects (ModelDataItem)
Array
modelID
required
string

Unique identifier for the model file, fixed value cannot be updated.

objectName
required
string [ 1 .. 63 ] characters

ObjectName of the model data indentified by modelID.

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "modelDatas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Flex AI

Get the flexai configuration

Gets the list of flexai models available and its configuration

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "flexAIConfigurations": [
    ]
}

Set the flexai configuration

Sets the confirguration for the flexai of a particular channel.

Note

Please check the options reponse for the supported values.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (flexAImodelsEach)
Array
enable
required
boolean
objectName
required
string

ObjectName configured for modelID

sensitivity
integer <int32> [ 1 .. 100 ]

Higher the number higher the sensitivity.

object (ObjectSizeInPixels)
width
required
integer <int32>

width based on max resolution (Without applying rotation)

height
required
integer <int32>

height based on max resolution (Without applying rotation)

object (ObjectSizeInPixels)
width
required
integer <int32>

width based on max resolution (Without applying rotation)

height
required
integer <int32>

height based on max resolution (Without applying rotation)

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "flexAImodels": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Upload model data

Trained model data is uploaded using this api as tar file. Here channel parameter is used to associate the uploaded model file to a channel in case of multi channel camera. If the camera is single channel camera, channel '0' is used.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

Request Body schema: application/octet-stream
required

Model file as binary content

string <binary>

Responses

Response samples

Content type
application/json
{
  • "modelID": "modelInd-1",
  • "modelOverwrite": true
}

Delete model data

Delete model data based on unique modelID.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

modelID
required
string

Required modelID prameter, unique identifier of the model data.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get options for the flexai configuration.

Based on this response, flexai can be configured.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "flexAIConfigurationOptions": [
    ]
}

Crowd Counting

Get CrowdCounting configuration

Gets the crowdcounting configuration, suppport only if crowdcounting capability is set to true.

CrowdCountDetection Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/CrowdCountDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<CrowdCountDetection wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSource" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</CrowdCountDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.CrowdCountDetection=True
Channel.0.OpenSDK.WiseAI.CrowdCountDetection.1=True

SCHEMABASED

TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.CrowdCountDetection=True
Channel.0.OpenSDK.WiseAI.CrowdCountDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.CrowdCountDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.CrowdCountDetection.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.CrowdCountDetection",
    "Time": "2023-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "CrowdCountDetection",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
    }
}

CrowdCountChanged Event

The CrowdCountChanged event is generated only in JSON schema format, this event occurs only when the Count value is changed. "Count" data in ONVIF/SUNAPI event is counted over 1 second, not cumulative value.

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/CrowdCountChanged

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<CrowdCountChanged wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSource" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="Count" Type="xsd:integer"/>
    </tt:Data>
  </tt:MessageDescription>
</CrowdCountChanged>

SUNAPI EVENT STATUS

SCHEMABASED

JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.CrowdCountChanged",
    "Time": "2023-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "CrowdCountChanged",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "Count": 3
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "crowdcountingConfigurations": [
    ]
}

Set CrowdCounting configuration

Configures the CrowdCounting settings. For the supported values refer to crowdcounting/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (CrowdCoutingAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Area Name

enable
boolean
threshold
integer <int32>

The threshold can be set to 10 unit; other values are rounded up

duration
integer <int32>

The event is triggered if there are more people than the configured threshold during this duration. The duration is configured in seconds

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "areas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get crowd counting options

Provides the supported values and ranges for the CrowdCounting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "crowdcountingConfigurationOptions": [
    ]
}

Delete area in crowdcounting rule

Delete an area based on requested area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Crowdcounting reporting configuraiton

Provides the reporting configuration of crowdcounting

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurations": [
    ]
}

Update Crowdcounting reporting configuration

Configures the Crowdcounting reporting configuration, for supported values refer to crowdcounting/report/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (RuleReportingConfiguration)
Array
index
integer <int32> >= 1

rule index

reportEnable
boolean
reportFileName
string [ 1 .. 63 ] characters
reportFileType
string
object (ReportingSchedule)
scheduleType
string
weekDay
string
Enum: "SUN" "MON" "TUE" "WED" "THU" "FRI" "SAT"
hour
integer <int32> [ 0 .. 23 ]
minute
integer <int32> [ 0 .. 59 ]

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "reportingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Crowdcounting reporting options

Provides the supported values and ranges for the Crowdcounting reporting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurationOptions": [
    ]
}

Delete stored Crowdcounting data

Clears the Crowdcounting that is stored.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Check the current crowd count

Getting the live crowd counting data

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

index
integer <int32> >= 1

Optional counting rule index to filter the result for the specified counting rule.

Responses

Response samples

Content type
application/json
{
  • "crowdCountingLive": [
    ]
}

Dynamic Privacy Mask

Get dynamic privacy mask configurations

Get the dynamic privacy mask event configurations, a device that indicates capability of dynamicprivacymask in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurations": [
    ]
}

Update dynamic privacy mask configuration

dynamic privacy mask setting, a device that indicates capability of dynamicprivacymask in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
objectTypes
Array of strings

List of objectTypes to be masked, supported list is provided in options. Eg, Face, Vehicle, Person etc.,

maskType
string
color
string
mosaic
string

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "objectTypes": [
    ],
  • "maskType": "string",
  • "color": "string",
  • "mosaic": "string"
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get dynamicprivacymask options

Get the dynamic privacy mask configurations options, a device that indicates capability of dynamicprivacymask in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "options": [
    ]
}

Data Server

Get dataserver configurations

To get the dataserver configuration. Data server configuration to which app connects, a device that indicates capability of dataserver in getcapability command shall support this command.

Authorizations:
digestAuth

Responses

Response samples

Content type
application/json
{
  • "enable": true,
  • "ipAddress": "192.168.0.1",
  • "port": 1,
  • "id": "string",
  • "password": "pa$$word",
  • "encryptedPassword": "string",
  • "storeName": "string"
}

Set dataserver configurations

To set the dataServer configuration. Configures the datasever settting, a device that indicates capability of dataserver in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
isPasswordEncrypted
boolean

Optional parameter, when passed as true the password field is encrypted using the RSA Public Key, If not passed it would be considered as plain text password.

Request Body schema: application/json
required
enable
boolean
ipAddress
string <ipv4>
port
integer <int32> [ 1 .. 65535 ]
id
string [ 1 .. 15 ] characters
password
string <password> [ 4 .. 31 ] characters

Plain text password

encryptedPassword
string non-empty

Encrypted password, this parameter must be used instead of 'password' if isPasswordEncrypted is requested as true in the query parameter

storeName
string [ 1 .. 20 ] characters

Responses

Request samples

Content type
application/json
{
  • "enable": true,
  • "ipAddress": "192.168.0.1",
  • "port": 1,
  • "id": "string",
  • "password": "pa$$word",
  • "encryptedPassword": "string",
  • "storeName": "string"
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Test dataserver connection

To test the dataserver connection status. Data server connection status, a device that indicates capability of dataserver in getcapability command shall support this command.

Authorizations:
digestAuth

Responses

Response samples

Content type
application/json
{
  • "connectionState": "Failed"
}

Schedule

Get schedule configurations

To get the schedule configuration. Schedule configuration to which app connects, a device that indicates capability of schedule in getcapability command shall support this command.

Authorizations:
digestAuth

Responses

Response samples

Content type
application/json
{
  • "schedules": [
    ]
}

Set schedule configurations

To set the schedule configuration. a device that indicates capability of schedule in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
required
Array of objects (ScheduleElement) <= 32 items
Array (<= 32 items)
index
required
integer <int32> >= 1
name
string

Name of schedule

object (ScheduleWeekElement)

Each hour of the day is represented by an array of 24.

  • 1: Enabled for that hour
  • 0: Disabled for that hour
  • (mm-mm): Time specified. The first 'mm' must be smaller than or equal to the second 'mm'.
sun
Array of strings = 24 items
mon
Array of strings = 24 items
tue
Array of strings = 24 items
wed
Array of strings = 24 items
thu
Array of strings = 24 items
fri
Array of strings = 24 items
sat
Array of strings = 24 items

Responses

Request samples

Content type
application/json
{
  • "schedules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Delete schedule in schedule configuration

Delete a schedule based on requested schedule index.

Authorizations:
digestAuth
query Parameters
index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get schedule configurations options

Get schedule configurations options, a device that indicates capability of schedule in getcapability command shall support this command.

Authorizations:
digestAuth

Responses

Response samples

Content type
application/json
{
  • "index": {
    },
  • "name": {
    }
}

Common Analytics Settings

Get common analytics settings

To get the current common settings configured for analytics

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "commonSetup": [
    ]
}

Set common analytics settings

Configures the common analytics settings

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
sensitivity
integer <int32> [ 1 .. 100 ]

Higher the number higher the sensitivity.

object (ObjectSize)
width
required
integer <int32> [ 0 .. 99 ]

Normalized width

height
required
integer <int32> [ 0 .. 99 ]

Normalized height

object (ObjectSize)
width
required
integer <int32> [ 0 .. 99 ]

Normalized width

height
required
integer <int32> [ 0 .. 99 ]

Normalized height

object (ObjectSizeInPixels)
width
required
integer <int32>

width based on max resolution (Without applying rotation)

height
required
integer <int32>

height based on max resolution (Without applying rotation)

object (ObjectSizeInPixels)
width
required
integer <int32>

width based on max resolution (Without applying rotation)

height
required
integer <int32>

height based on max resolution (Without applying rotation)

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "sensitivity": 1,
  • "minimumObjectSize": {
    },
  • "maximumObjectSize": {
    },
  • "minimumObjectSizeInPixels": {
    },
  • "maximumObjectSizeInPixels": {
    }
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get common analytics settings optioons

Provide allowed values of each parameters in commonanalyticssettings configuration. Ranges of parameters and max supported regions are provided here

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "commonSetupOptions": [
    ]
}

Security

Get RSA Public Key

RSA Public Key in PKCS1 or X509 Format, this can be used to encrypt password.

Authorizations:
digestAuth
query Parameters
format
string
Enum: "PKCS1" "X509"
Example: format=X509

Optional format parameter to get the public key in requested format. Default format is PKCS1.

Responses

Response samples

Content type
application/json
{
  • "response": "Fail",
  • "error": {
    }
}

Date/Time

Get system date/time information

The date and time information are provided in both local time and UTC time.

Authorizations:
digestAuth

Responses

Response samples

Content type
application/json
{
  • "localTime": "2019-08-24T14:15:22Z",
  • "utcTime": "2019-08-24T14:15:22Z",
  • "dstEnable": true,
  • "timezone": "string"
}

Log

Get event log

To get the eventlog of all the events, filtering is possible based on time range and eventtype. A device that indicates capability of eventlog in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

type
Array of strings non-empty

Optional type parameter to pass the event types to be filtered, refer to capability eventLogTypes field for the supported values.

fromDate
string <date-time>

Optional parameter, to filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
string <date-time>

Optional parameter, to filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

Responses

Response samples

Content type
application/json
{
  • "eventLogDatas": [
    ]
}

Get system log

To get the system log, filtering is possible based on time range and logtype. A device that indicates capability of systemlog in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
type
Array of strings non-empty

Optional type parameter to pass the system log type to be filtered, refer to capability systemLogTypes field for the supported values.

fromDate
string <date-time>

Optional parameter, to filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
string <date-time>

Optional parameter, to filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

Responses

Response samples

Content type
application/json
{
  • "logs": [
    ]
}

Settings

Backup app settings

To take configuration backup of the app settings. configuration backup file in binary format.

Authorizations:
digestAuth

Responses

Response samples

Content type
application/json
{
  • "response": "Fail",
  • "error": {
    }
}

Restore app settings

To restore the app settings. configuration backup file can be sent to app to restore its settings from backup file (as application/octet-stream)

Authorizations:
digestAuth
Request Body schema: application/octet-stream
required

Backup file as binary content

string <binary>

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Reset app setting to default

Reset application's configuration to default state. This operation will delete current setting and reset the application to default state.

Authorizations:
digestAuth

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

License

Get license status

Get the current license status of the app

Authorizations:
digestAuth

Responses

Response samples

Content type
application/json
{
  • "licences": [
    ]
}

Get license activation code

Get offline activation information for the entered license key

Authorizations:
digestAuth
query Parameters
licenseKey
required
string [ 1 .. 40 ] characters

License Key

Responses

Response samples

Content type
application/json
{
  • "requestCode": "string",
  • "qrImagePath": "string",
  • "activationUrl": "string"
}

License activation

Request license activation

Authorizations:
digestAuth
Request Body schema: application/json
required
activationType
required
string
Enum: "Online" "Offline" "OfflineWithFile"

Depending on the activation type selected, the parameters are used as shown below and the rest are ignored

  • Online: Activate license online, requires a licenseKey parameter
  • Offline: Activate license offline, requires licenseKey, requestCode and activationCode parameters
  • OfflineWithFile: Activate license offline, requires a licenseFile parameter
licenseKey
string
requestCode
string
activationCode
string
licenseFile
string <byte>

Responses

Request samples

Content type
application/json
{
  • "activationType": "Online",
  • "licenseKey": "string",
  • "requestCode": "string",
  • "activationCode": "string",
  • "licenseFile": "string"
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Sightmind

Get sightmind configurations

To get the sightmind configuration. Sightmind configuration to which app connects, a device that indicates capability of sightmind in getcapability command shall support this command.

Authorizations:
digestAuth

Responses

Response samples

Content type
application/json
{
  • "enable": true
}

Set sightmind configurations

To set the sightmind configuration. Configures the sightmind settting, a device that indicates capability of sightmind in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
enable
boolean

Responses

Request samples

Content type
application/json
{
  • "enable": true
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Blocked Exit Detection

Get Blocked Exit Detection configuration

Gets the Blocked Exit Detection configuration, suppport only if blockedexitdetection capability is set to true.

BlockedExitDetection Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/BlockedExitDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<BlockedExitDetection wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</BlockedExitDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.BlockedExitDetection=True
Channel.0.OpenSDK.WiseAI.BlockedExitDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.BlockedExitDetection=True
Channel.0.OpenSDK.WiseAI.BlockedExitDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.BlockedExitDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.BlockedExitDetection.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.BlockedExitDetection",
    "Time": "2023-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "BlockedExitDetection",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "RuleName1"
    },
    "Data": {
        "State": true
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurations": [
    ]
}

Set Blocked Exit Detection configuration

Configures the Blocked Exit Detection settings. For the supported values refer to blockedexitdetection/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
enable
boolean
Array of objects (BlockedExitDetectionAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
duration
integer <int32>

duration in minutes refer to corresponding options for valid range.

sensitivity
integer <int32> [ 1 .. 100 ]

Higher the number higher the sensitivity.

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "areas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Blocked Exit Detection configuration ROI's reference image.

To make reference image, it takes some time. So client needs to check status of making image by GET '/configuration/blockedexitdetection' 'referenceImageReady' parameter.

Authorizations:
digestAuth
query Parameters
index
required
integer

Required index prameter.

channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

Responses

Response samples

Content type
image/png
<png image binary>

Get Blocked Exit Detection configuration Options

Provides the supported values and ranges for the Blocked Exit Detection configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "detectionOptions": [
    ]
}

Delete area in Blocked Exit Detection rule

Delete an area based on requested area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

ATM Hook & Chain Event Detection

Get ATM Hook & Chain Event Detection configuration

Gets the ATM Hook & Chain Event Detection configuration, suppport only if atmhookchaindetection capability is set to true.

ATMHookChainDetection Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/ATMHookChainDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<ATMHookChainDetection wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</ATMHookChainDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.ATMHookChainDetection=True
Channel.0.OpenSDK.WiseAI.ATMHookChainDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.ATMHookChainDetection=True
Channel.0.OpenSDK.WiseAI.ATMHookChainDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.ATMHookChainDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.ATMHookChainDetection.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.ATMHookChainDetection",
    "Time": "2023-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "ATMHookChainDetection",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "RuleName1"
    },
    "Data": {
        "State": true
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurations": [
    ]
}

Set ATM Hook & Chain Event Detection configuration

Configures the ATM Hook & Chain Event Detection settings. For the supported values refer to atmhookchaindetection/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
enable
boolean
Array of objects (ATMHookChainDetectionAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
Array of objects (AreaCoordinatesElement)

Inner areas contained within areaCoordinates, coordinates must be included within areaCoordinates, For the number of supported areas, refer to the innerAreas data in options

Array
required
Array of objects (CoordinatePoint) >= 4 items
minimumDuration
integer <int32>

duration in seconds refer to corresponding options for valid range.

condition
string
normalVehicleFlow
string

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "areas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get ATM Hook & Chain Event Detection options

Provides the supported values and ranges for the ATM Hook & Chain Event Detection configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "options": [
    ]
}

Delete area in ATM Hook & Chain Event Detection rule

Delete an area based on requested area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Loitering Detection

Get Loitering Detection configuration

Gets the Loitering Detection configuration, suppport only if loiteringdetection capability is set to true.

LoiteringDetection Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/LoiteringDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<LoiteringDetection wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</LoiteringDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.LoiteringDetection=True
Channel.0.OpenSDK.WiseAI.LoiteringDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.LoiteringDetection=True
Channel.0.OpenSDK.WiseAI.LoiteringDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.LoiteringDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.LoiteringDetection.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.LoiteringDetection",
    "Time": "2023-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "LoiteringDetection",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "RuleName1"
    },
    "Data": {
        "State": true
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurations": [
    ]
}

Set Loitering Detection configuration

Configures the Loitering Detection settings. For the supported values refer to loiteringdetection/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
enable
boolean
Array of objects (LoiteringDetectionAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
Array of objects (AreaCoordinatesElement)

Inner areas contained within areaCoordinates, coordinates must be included within areaCoordinates, For the number of supported areas, refer to the innerAreas data in options

Array
required
Array of objects (CoordinatePoint) >= 4 items
minimumDuration
integer <int32>

duration in seconds refer to corresponding options for valid range.

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "areas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Loitering Detection options

Provides the supported values and ranges for the Loitering Detection configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "options": [
    ]
}

Delete area in Loitering Detection rule

Delete an area based on requested area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Proximity Detection

Get proximity detection configurations

Gets the proximity detection settings, suppport only if proximitydetection capability is set to true.

ProximityDetection Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/ProximityDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<ProximityDetection wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="ObjectId" Type="tt:StringList"/>
    </tt:Data>
  </tt:MessageDescription>
</ProximityDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.ProximityDetection=True
Channel.0.OpenSDK.WiseAI.ProximityDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.ProximityDetection=True
Channel.0.OpenSDK.WiseAI.ProximityDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.ProximityDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.ProximityDetection.1.State=True
Channel.0.OpenSDK.WiseAI.ProximityDetection.1.ObjectId=1234 1235
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.ProximityDetection",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "ProximityDetection",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true,
        "ObjectId": "1234 1235"
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "proximityDetection": [
    ]
}

Update proximity detection configurations

Configures the proximity detection settings, for supported values and ranges refer to proximitydetection/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
enable
boolean
distanceSpeedUnit
string
cameraHeight
number <double>

Camera height from floor (unit depends on distanceSpeedUnit setting)

tilt
number <double>
roll
number <double>
focalLength
number <double>
Array of objects (ProximityDetectionRuleElement)
Array
index
integer <int32> >= 1
name
string [ 1 .. 63 ] characters
objectTypes
Array of strings = 2 items
minimumDistance
number <double>

Minimum distance between objects (unit depends on distanceSpeedUnit setting)

duration
integer <int32>

duration in seconds refer to corresponding options for valid range.

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "distanceSpeedUnit": "string",
  • "cameraHeight": 0.1,
  • "tilt": 0.1,
  • "roll": 0.1,
  • "focalLength": 0.1,
  • "rules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Delete Proximity detection rules

Delete the rule for the requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get proximity detection options

Supported values and ranges reguired for configuring proximity detection is provided in response.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "detectionOptions": [
    ]
}

Fire Detection

Get fire detection configuration

Gets the fire detection configuration, suppport only if firedetection capability is set to true.

FireDetection Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/FireDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<FireDetection wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="Score" Type="xsd:float"/>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</FireDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.FireDetection=True
Channel.0.OpenSDK.WiseAI.FireDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.FireDetection=True
Channel.0.OpenSDK.WiseAI.FireDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.FireDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.FireDetection.1.Score=0.5
Channel.0.OpenSDK.WiseAI.FireDetection.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.FireDetection",
    "Time": "2023-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "FireDetection",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "RuleName1"
    },
    "Data": {
        "Score": 0.5,
        "State": true
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurations": [
    ]
}

Set fire detection configuration

Configures the fire detection settings. For the supported values refer to firedetection/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
enable
boolean
sensitivity
integer <int32>

Higher the number higher the sensitivity, refer to corresponding options for valid range.

Array of objects (FireDetectionAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
duration
integer <int32>

duration in seconds refer to corresponding options for valid range.

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "sensitivity": 0,
  • "areas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get fire detection configuration Options

Provides the supported values and ranges for the fire detection configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "detectionOptions": [
    ]
}

Delete area in fire detection rule

Delete an area based on requested area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Fallen Object Detection

Get fallen object detection configuration

Gets the fallen object detection configuration, suppport only if fallenobjectdetection capability is set to true.

FallenObjectDetection Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/FallenObjectDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<FallenObjectDetection wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="NormalizedCoordinates" Type="xsd:string"/>
    </tt:Data>
  </tt:MessageDescription>
</FallenObjectDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.FallenObjectDetection=True
Channel.0.OpenSDK.WiseAI.FallenObjectDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.FallenObjectDetection=True
Channel.0.OpenSDK.WiseAI.FallenObjectDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.FallenObjectDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.FallenObjectDetection.1.State=True
Channel.0.OpenSDK.WiseAI.FallenObjectDetection.1.NormalizedCoordinates=-0.5,0.5,0.5,0.5,0.5,-0.5,-0.5,-0.5
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.FallenObjectDetection",
    "Time": "2023-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "FallenObjectDetection",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "RuleName1"
    },
    "Data": {
        "State": true,
        "NormalizedCoordinates": "-0.5,0.5,0.5,0.5,0.5,-0.5,-0.5,-0.5"
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurations": [
    ]
}

Set fallen object detection configuration

Configures the fallen object detection settings. For the supported values refer to fallenobjectdetection/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
enable
boolean
Array of objects (FallenObjectDetectionAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
duration
integer <int32>

duration in seconds refer to corresponding options for valid range.

sensitivity
integer <int32>

Higher the number higher the sensitivity, refer to corresponding options for valid range.

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "areas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get fallen object detection configuration Options

Provides the supported values and ranges for the fallen object detection configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "detectionOptions": [
    ]
}

Delete area in fallen object detection rule

Delete an area based on requested area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Shopping Cart Queue Management

Retail pack only

Get Shopping Cart QueueManagement configuration

Gets the shopping cart queue qanagement configuration, suppport only if shoppingcartqueuemanagement capability is set to true. This configuration is specific to the shopping cart queue management.

ShoppingCartQueueMedium Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/ShoppingCartQueueMedium

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<ShoppingCartQueueMedium wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</ShoppingCartQueueMedium>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.ShoppingCartQueueMedium=True
Channel.0.OpenSDK.WiseAI.ShoppingCartQueueMedium.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.ShoppingCartQueueMedium=True
Channel.0.OpenSDK.WiseAI.ShoppingCartQueueMedium.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.ShoppingCartQueueMedium.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.ShoppingCartQueueMedium.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.ShoppingCartQueueMedium",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "ShoppingCartQueueMedium",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
    }
}

ShoppingCartQueueHigh Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/ShoppingCartQueueHigh

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<ShoppingCartQueueHigh wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</ShoppingCartQueueHigh>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.ShoppingCartQueueHigh=True
Channel.0.OpenSDK.WiseAI.ShoppingCartQueueHigh.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.ShoppingCartQueueHigh=True
Channel.0.OpenSDK.WiseAI.ShoppingCartQueueHigh.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.ShoppingCartQueueHigh.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.ShoppingCartQueueHigh.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.ShoppingCartQueueHigh",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "ShoppingCartQueueHigh",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
    }
}

ShoppingCartQueueCountChanged Event

The ShoppingCartQueueCountChanged event is generated only in JSON schema format, this event occurs only when the Count value is changed. "Count" data in ONVIF/SUNAPI event is counted over 1 second, not cumulative value. Also, if you want to know the counting result for a specific period, check the contents of "search/shoppingcartqueuemanagement"

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/ShoppingCartQueueCountChanged

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<ShoppingCartQueueCountChanged wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSource" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="Count" Type="xsd:integer"/>
    </tt:Data>
  </tt:MessageDescription>
</ShoppingCartQueueCountChanged>

SUNAPI EVENT STATUS

SCHEMABASED

JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.ShoppingCartQueueCountChanged",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "ShoppingCartQueueCountChanged",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "Count": 3
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "queuemanagementConfigurations": [
    ]
}

Set Shopping Cart QueueManagement configuration

Configures the shopping cart QueueManagement settings. For the supported values refer to shoppingcartqueuemanagement/options response.

  • NOTE: The count of queueLevelMedium is automatically set to half of the count value of queueLevelHigh. Therefore, even if you set the count value of queueLevelMedium, that value is ignored.
Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (QueueElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Queue Name

enable
boolean
maxCount
integer <int32>
Array of objects (CoordinatePoint) >= 4 items

Queue Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
object (QueueLevelConfiguration)
count
integer <int32>
enableEventNotification
boolean
duration
integer <int32>
object (QueueLevelConfiguration)
count
integer <int32>
enableEventNotification
boolean
duration
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "queues": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Shopping Cart QueueManagement options

Provides the supported values and ranges for the Shopping Cart QueueManagement configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "queuemanagementConfigurationOptions": [
    ]
}

Delete Shopping Cart QueueManagement rule

Delete an queue area based on requested queue index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Shopping Cart QueueManagement reporting configuraiton

Provides the reporting configuration of queuemanagement

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurations": [
    ]
}

Update Shopping Cart QueueManagement reporting configuration

Configures the Shopping Cart QueueManagement reporting configuration, for supported values refer to shoppingcartqueuemanagement/report/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (RuleReportingConfiguration)
Array
index
integer <int32> >= 1

rule index

reportEnable
boolean
reportFileName
string [ 1 .. 63 ] characters
reportFileType
string
object (ReportingSchedule)
scheduleType
string
weekDay
string
Enum: "SUN" "MON" "TUE" "WED" "THU" "FRI" "SAT"
hour
integer <int32> [ 0 .. 23 ]
minute
integer <int32> [ 0 .. 59 ]

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "reportingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Shopping Cart QueueManagement reporting options

Provides the supported values and ranges for the Shopping Cart QueueManagement reporting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurationOptions": [
    ]
}

Delete stored Shopping Cart QueueManagement data

Clears the Shopping Cart QueueManagement that is stored.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Initiate Shopping Cart queuemanagement Search

Initiate the shopping cart queuemanagement search based on search time duration and returns a search token

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

fromDate
required
string <date-time>

To filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
required
string <date-time>

To filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

object (QueueSearchQueryObject)

Advanced result filtering based on queue name

Responses

Response samples

Content type
application/json
{
  • "searchToken": "SearchToken-122212"
}

Check the status of shopping cart queuemanagement search

Search token can be used to check if the search status is complete.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
Example
{
  • "status": "Completed"
}

Cancel Shopping Cart Queuemanagement Search Session

Client can cancel an intiated search session using this method. Should pass a valid search token to cancel.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the search results

Once the search is complete, using the search token shopping cart queuemanagement results can be retreived.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "resultInterval": "Hourly",
  • "queues": [
    ]
}

Check the current queue count

Getting the live queue count

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

index
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Optional parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "queueCount": [
    ]
}

Shopping Cart Heatmap

Retail pack only

Get Shopping Cart configuration

Get the Shopping Cart configuration, supported only if shoppingcartheatmap capability is set to true.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmapConfigurations": [
    ]
}

Update Shopping Cart heatmap configuration

Configures the Shopping Cart heatmap settings. For the supported values refer to shoppingcartheatmap/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
backgroundColorMode
string
enableManualReferenceMode
boolean
manualReference
integer <int32>
Array of objects (ExcludeAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Name of the exclude region

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "backgroundColorMode": "string",
  • "enableManualReferenceMode": true,
  • "manualReference": 0,
  • "excludeAreas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Shopping Cart heatmap options

Provides the supported values and ranges for the Shopping Cart heatmap configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmapConfigurationOptions": [
    ]
}

Delete Shopping Cart heatmap exclude area

Delete the excludearea based on the requested exclude area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Shopping Cart heatmap reporting configuraiton

Provides the reporting configuration of Shopping Cart heatmap

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurations": [
    ]
}

Set Shopping Cart heatmap reporting configuration

Configures the Shopping Cart heatmap reporting configuration, for supported values refer to shoppingcartheatmap/report/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (RuleReportingConfiguration)
Array
index
integer <int32> >= 1

rule index

reportEnable
boolean
reportFileName
string [ 1 .. 63 ] characters
reportFileType
string
object (ReportingSchedule)
scheduleType
string
weekDay
string
Enum: "SUN" "MON" "TUE" "WED" "THU" "FRI" "SAT"
hour
integer <int32> [ 0 .. 23 ]
minute
integer <int32> [ 0 .. 59 ]

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "reportingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Shopping Cart heatmap reporting options

Provides the supported values and ranges for the Shopping Cart heatmap reporting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurationOptions": [
    ]
}

Delete stored Shopping Cart heatmap data

Clears the Shopping Cart heatmap that is stored.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Initiate shoppingcart heatmap search

Initiate the shoppingcart heatmap search based on search time duration and returns a search token

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

fromDate
required
string <date-time>

To filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
required
string <date-time>

To filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

resultFormat
string
Enum: "Image" "Json"

Optional format parameter to get the search result in requested format. Default format is image.

resultImageType
string
Enum: "WithBackground" "WithoutBackground"
Example: resultImageType=WithBackground

Optional result Image type selection, if not passed WithBackground will be selected. It's used when the resultFormat paramter is image

Responses

Response samples

Content type
application/json
{
  • "searchToken": "SearchToken-122212"
}

Check the status of search

Search token can be used to check if the search status is complete.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
Example
{
  • "status": "Completed"
}

Cancel Search Session

Client can cancel an intiated search session using this method. Should pass a valid search token to cancel.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the search results

Once the search is complete, using the search token shoppingcart heatmap image can be downloaded.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Fail",
  • "error": {
    }
}

Check the current shoppingcart heatmap levels

Getting the live shoppingcart heatmap levels

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmap": [
    ]
}

Vehicle Queue Management

Traffic pack only

Get Vehicle QueueManagement configuration

Gets the vehicle queue qanagement configuration, suppport only if shoppingcartqueuemanagement capability is set to true. This configuration is specific to the vehicle queue management.

VehicleQueueMedium Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/VehicleQueueMedium

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<VehicleQueueMedium wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</VehicleQueueMedium>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.VehicleQueueMedium=True
Channel.0.OpenSDK.WiseAI.VehicleQueueMedium.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.VehicleQueueMedium=True
Channel.0.OpenSDK.WiseAI.VehicleQueueMedium.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.VehicleQueueMedium.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.VehicleQueueMedium.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.VehicleQueueMedium",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "VehicleQueueMedium",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
    }
}

VehicleQueueHigh Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/VehicleQueueHigh

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<VehicleQueueHigh wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</VehicleQueueHigh>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.VehicleQueueHigh=True
Channel.0.OpenSDK.WiseAI.VehicleQueueHigh.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.VehicleQueueHigh=True
Channel.0.OpenSDK.WiseAI.VehicleQueueHigh.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.VehicleQueueHigh.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.VehicleQueueHigh.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.VehicleQueueHigh",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "VehicleQueueHigh",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
    }
}

VehicleQueueCountChanged Event

The VehicleQueueCountChanged event is generated only in JSON schema format, this event occurs only when the Count value is changed. "Count" data in ONVIF/SUNAPI event is counted over 1 second, not cumulative value. Also, if you want to know the counting result for a specific period, check the contents of "search/vehiclequeuemanagement"

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/VehicleQueueCountChanged

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<VehicleQueueCountChanged wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSource" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="Count" Type="xsd:integer"/>
    </tt:Data>
  </tt:MessageDescription>
</VehicleQueueCountChanged>

SUNAPI EVENT STATUS

SCHEMABASED

JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.VehicleQueueCountChanged",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "VehicleQueueCountChanged",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "Count": 3
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "queuemanagementConfigurations": [
    ]
}

Set Vehicle QueueManagement configuration

Configures the vehicle QueueManagement settings. For the supported values refer to vehiclequeuemanagement/options response.

  • NOTE: The count of queueLevelMedium is automatically set to half of the count value of queueLevelHigh. Therefore, even if you set the count value of queueLevelMedium, that value is ignored.
Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (QueueElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Queue Name

enable
boolean
maxCount
integer <int32>
Array of objects (CoordinatePoint) >= 4 items

Queue Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
object (QueueLevelConfiguration)
count
integer <int32>
enableEventNotification
boolean
duration
integer <int32>
object (QueueLevelConfiguration)
count
integer <int32>
enableEventNotification
boolean
duration
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "queues": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Vehicle QueueManagement options

Provides the supported values and ranges for the Vehicle QueueManagement configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "queuemanagementConfigurationOptions": [
    ]
}

Delete Vehicle QueueManagement rule

Delete an queue area based on requested queue index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Vehicle QueueManagement reporting configuraiton

Provides the reporting configuration of queuemanagement

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurations": [
    ]
}

Update Vehicle QueueManagement reporting configuration

Configures the Vehicle QueueManagement reporting configuration, for supported values refer to vehiclequeuemanagement/report/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (RuleReportingConfiguration)
Array
index
integer <int32> >= 1

rule index

reportEnable
boolean
reportFileName
string [ 1 .. 63 ] characters
reportFileType
string
object (ReportingSchedule)
scheduleType
string
weekDay
string
Enum: "SUN" "MON" "TUE" "WED" "THU" "FRI" "SAT"
hour
integer <int32> [ 0 .. 23 ]
minute
integer <int32> [ 0 .. 59 ]

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "reportingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Vehicle QueueManagement reporting options

Provides the supported values and ranges for the Vehicle QueueManagement reporting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurationOptions": [
    ]
}

Delete stored Vehicle QueueManagement data

Clears the Vehicle QueueManagement that is stored.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Initiate Vehicle queuemanagement Search

Initiate the vehicle queuemanagement search based on search time duration and returns a search token

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

fromDate
required
string <date-time>

To filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
required
string <date-time>

To filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

object (QueueSearchQueryObject)

Advanced result filtering based on queue name

Responses

Response samples

Content type
application/json
{
  • "searchToken": "SearchToken-122212"
}

Check the status of vehicle queuemanagement search

Search token can be used to check if the search status is complete.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
Example
{
  • "status": "Completed"
}

Cancel Vehicle Queuemanagement Search Session

Client can cancel an intiated search session using this method. Should pass a valid search token to cancel.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the search results

Once the search is complete, using the search token vehicle queuemanagement results can be retreived.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "resultInterval": "Hourly",
  • "queues": [
    ]
}

Check the current queue count

Getting the live queue count

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

index
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Optional parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "queueCount": [
    ]
}

Vehicle Heatmap

Traffic pack only

Get Vehicle configuration

Get the Vehicle configuration, supported only if vehicleheatmap capability is set to true.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmapConfigurations": [
    ]
}

Update Vehicle heatmap configuration

Configures the Vehicle heatmap settings. For the supported values refer to vehicleheatmap/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
backgroundColorMode
string
enableManualReferenceMode
boolean
manualReference
integer <int32>
Array of objects (ExcludeAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Name of the exclude region

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "backgroundColorMode": "string",
  • "enableManualReferenceMode": true,
  • "manualReference": 0,
  • "excludeAreas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Vehicle heatmap options

Provides the supported values and ranges for the Vehicle heatmap configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmapConfigurationOptions": [
    ]
}

Delete Vehicle heatmap exclude area

Delete the excludearea based on the requested exclude area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Vehicle heatmap reporting configuraiton

Provides the reporting configuration of Vehicle heatmap

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurations": [
    ]
}

Set Vehicle heatmap reporting configuration

Configures the Vehicle heatmap reporting configuration, for supported values refer to vehicleheatmap/report/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (RuleReportingConfiguration)
Array
index
integer <int32> >= 1

rule index

reportEnable
boolean
reportFileName
string [ 1 .. 63 ] characters
reportFileType
string
object (ReportingSchedule)
scheduleType
string
weekDay
string
Enum: "SUN" "MON" "TUE" "WED" "THU" "FRI" "SAT"
hour
integer <int32> [ 0 .. 23 ]
minute
integer <int32> [ 0 .. 59 ]

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "reportingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Vehicle heatmap reporting options

Provides the supported values and ranges for the Vehicle heatmap reporting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurationOptions": [
    ]
}

Delete stored Vehicle heatmap data

Clears the Vehicle heatmap that is stored.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Initiate vehicle heatmap search

Initiate the vehicle heatmap search based on search time duration and returns a search token

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

fromDate
required
string <date-time>

To filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
required
string <date-time>

To filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

resultFormat
string
Enum: "Image" "Json"

Optional format parameter to get the search result in requested format. Default format is image.

resultImageType
string
Enum: "WithBackground" "WithoutBackground"
Example: resultImageType=WithBackground

Optional result Image type selection, if not passed WithBackground will be selected. It's used when the resultFormat paramter is image

Responses

Response samples

Content type
application/json
{
  • "searchToken": "SearchToken-122212"
}

Check the status of search

Search token can be used to check if the search status is complete.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
Example
{
  • "status": "Completed"
}

Cancel Search Session

Client can cancel an intiated search session using this method. Should pass a valid search token to cancel.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the search results

Once the search is complete, using the search token vehicle heatmap image can be downloaded.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Fail",
  • "error": {
    }
}

Check the current vehicle heatmap levels

Getting the live vehicle heatmap levels

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmap": [
    ]
}

Vehicle Speed Detection

Traffic pack only

Get the vehicle speed detection configurations

line based vehicle speed detection configurations, a device that indicates capability of vehiclespeeddetection in getcapability command shall support this command. When vehicle speed detection is enabled, event is delivered in below formats,

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/VehicleSpeedDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<VehicleSpeedDetection wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="Speed" Type="xsd:float"/>
      <tt:SimpleItemDescription Name="ObjectId" Type="xsd:integer"/>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</VehicleSpeedDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.VehicleSpeedDetection=True
Channel.0.OpenSDK.WiseAI.VehicleSpeedDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.VehicleSpeedDetection=True
Channel.0.OpenSDK.WiseAI.VehicleSpeedDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.VehicleSpeedDetection.1.RuleName=rulename
Channel.0.OpenSDK.WiseAI.VehicleSpeedDetection.1.Speed=3.5
Channel.0.OpenSDK.WiseAI.VehicleSpeedDetection.1.ObjectId=1234
Channel.0.OpenSDK.WiseAI.VehicleSpeedDetection.1.State=True
JSON RESPONSE
{
  "EventName": "OpenSDK.WiseAI.VehicleSpeedDetection",
  "Time": "2021-10-27T07:36:14.509+00:00",
  "Source": {
    "Channel": 0,
    "AppName": "WiseAI",
    "AppID": "WiseAI",
    "AppEvent": "VehicleSpeedDetection",
    "Type": "Event",
    "RuleIndex": 1,
    "VideoSourceToken": "VideoSourceToken-0",
    "RuleName": "rulename"
  },
  "Data": {
    "Speed": 3.5,
    "ObjectId": 1234,
    "State": true
  }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurations": [
    ]
}

Update vehicle speed detection configurations

line based vehicle speed detection configurations, a device that indicates capability of vehiclespeeddetection in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
distanceSpeedUnit
string
Array of objects (VehicleSpeedDetectionRule)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters
objectTypes
Array of strings

List of objectTypes to be detected, supported list is provided in options.

Array of objects (LineElement)
Array
required
Array of objects (CoordinatePoint) >= 2 items

Line Coordinates

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
distance
number <double>

Approximate distance between start line and end line. Unit of distance is based on the distanceSpeedUnit parameter.

speed
integer <int32>

Speed of vehicle, if vehicles are moving below this speed event would be generated. Unit depends on distanceSpeedUnit parameter.

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "distanceSpeedUnit": "string",
  • "detectionRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get vehicle speed detection options

Provide allowed values of each parameters in vehicle speed detection configuration. Ranges of parameters in vehicle speed detection configuration, a device that indicates capability of vehiclespeeddetection in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "options": [
    ]
}

Delete Vehicle speed detection rules

Delete the rule for the requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Pedestrian Detection

Traffic pack only

Get Pedestrian detection settings

gets the pedestrian detection settings that is configured. Can check if pedestriandetection feature is supported from the configuration/capability response.

PedestrianDetection Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/PedestrianDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<PedestrianDetection wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="ObjectId" Type="tt:StringList"/>
    </tt:Data>
  </tt:MessageDescription>
</PedestrianDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.PedestrianDetection=True
Channel.0.OpenSDK.WiseAI.PedestrianDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.PedestrianDetection=True
Channel.0.OpenSDK.WiseAI.PedestrianDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.PedestrianDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.PedestrianDetection.1.State=True
Channel.0.OpenSDK.WiseAI.PedestrianDetection.1.ObjectId=1 2
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.PedestrianDetection",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "PedestrianDetection",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true,
        "ObjectId": "1 2"
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "pedestrianDetection": [
    ]
}

Update pedestrian detection setting.

Configures the pedestrian detection settings, for supported values and ranges refer to pedestrianDetection/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
enable
boolean
Array of objects (PedestrianDetectionAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

duration
integer <int32>

duration in seconds refer to corresponding options for valid range.

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
objectTypes
Array of strings

Specifies the list of supported objectTypes

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "detectionAreas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Delete stored pedestrian detection areas

Delete the area for the requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Pedestrian detection options

Supported values and ranges reguired for configuring pedestrian detection is provided in response.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "pedestrianDetectionOptions": [
    ]
}

Wrong-way Detection

Traffic pack only

Get the wrong-way detection configurations

line based wrong-way detection configurations, a device that indicates capability of wrongwaydetection in getcapability command shall support this command. When Wrong-way detection is enabled, event is delivered in below formats,

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/WrongwayDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<WrongwayDetection wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="ObjectId" Type="tt:StringList"/>
    </tt:Data>
  </tt:MessageDescription>
</WrongwayDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.WrongwayDetection=True
Channel.0.OpenSDK.WiseAI.WrongwayDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.WrongwayDetection=True
Channel.0.OpenSDK.WiseAI.WrongwayDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.WrongwayDetection.1.RuleName=rulename
Channel.0.OpenSDK.WiseAI.WrongwayDetection.1.State=True
Channel.0.OpenSDK.WiseAI.WrongwayDetection.1.ObjectId=1
JSON RESPONSE
{
  "EventName": "OpenSDK.WiseAI.WrongwayDetection",
  "Time": "2021-10-27T07:36:14.509+00:00",
  "Source": {
    "Channel": 0,
    "AppName": "WiseAI",
    "AppID": "WiseAI",
    "AppEvent": "WrongwayDetection",
    "Type": "Event",
    "RuleIndex": 1,
    "VideoSourceToken": "VideoSourceToken-0",
    "RuleName": "rulename"
  },
  "Data": {
    "State": true,
    "ObjectId": 1
  }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "wrongwayDetectionConfiguration": [
    ]
}

Update wrong-way detection configurations

line based wrong-way detection configurations, a device that indicates capability of wrongwaydetection in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (WrongwayDetectionRule)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters
objectTypes
Array of strings

Specifies the list of supported objectTypes

Array of objects (LineElement)
Array
required
Array of objects (CoordinatePoint) >= 2 items

Line Coordinates

Array of objects (CoordinatePoint)

Indicates the path between the start and end lines

Array
x
required
integer <int32>
y
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "detectionRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get wrong-way detection options

Provide allowed values of each parameters in wrong-way detection configuration. Ranges of parameters in wrong-way detection configuration, a device that indicates capability of wrongwaydetection in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "wrongwayDetectionOptions": [
    ]
}

Delete Wrong-Way detection rules

Delete the rule for the requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Multi-Lane Vehicle Counting

Traffic pack only

Get Multi-lane vehicle Counting configuration

Generic Multi-lane vehicle counting configuration, that can be used for counting objects that crosses the configured lines. For supported objecttypes you can refer to multilanevehiclecounting/options command response.

Event Description

The MultiLaneVehicleCounting event is generated only in JSON schema format, this event occurs only when the Count value is changed.
Currently only "Punctual" ReportType is supported, but it may be extended to other ReportTypes such as "Summary" in the future.
"Count" data in ONVIF/SUNAPI event is counted over 1 second, not cumulative value.
Also, if you want to know the counting result for a specific period, check the contents of "search/multilanevehiclecounting"

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/MultiLaneVehicleCounting

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<MultiLaneVehicleCounting wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSource" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="ReportType" Type="xsd:string"/>
      <tt:SimpleItemDescription Name="ObjectType" Type="xsd:string"/>
      <tt:SimpleItemDescription Name="Direction" Type="xsd:string"/>
      <tt:SimpleItemDescription Name="Count" Type="xsd:integer"/>
    </tt:Data>
  </tt:MessageDescription>
</MultiLaneVehicleCounting>

SUNAPI EVENT STATUS

SCHEMABASED

JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.MultiLaneVehicleCounting",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "MultiLaneVehicleCounting",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "ReportType": "Punctual",
        "ObjectType": "Vehicle",
        "Direction": "IN",
        "Count": 3
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurations": [
    ]
}

Set MultiLaneVehicleCounting configuration

Configurest the generic multilanevehiclecounting rule, can be used to count objectypes provided in the multilanevehiclecounting/options.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (MultiLaneVehicleCountingRule)
Array
index
integer <int32> >= 1
name
string [ 1 .. 63 ] characters
objectTypes
Array of strings

Specifies the list of supported objectTypes

Array of objects (LineElement)
Array
required
Array of objects (CoordinatePoint) >= 2 items

Line Coordinates

Array of objects (CoordinatePoint)

Indicates the path between the start and end lines

Array
x
required
integer <int32>
y
required
integer <int32>
Array of objects (ExcludeAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Name of the exclude region

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "countingRules": [
    ],
  • "excludeAreas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get MultiLaneVehicleCounting options

Provides the values supported in multilanevehiclecounting rule

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurationOptions": [
    ]
}

Delete counting rule

Delete the rule based on requested counting counting rule index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> [ items <int32 > >= 1 ]

counting rule index in which the line has to be deleted

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Delete exclude area rule

Delete the excludearea based on the requested exclude area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> [ items <int32 > >= 1 ]

The exclude areas can be deleted

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get MultiLaneVehicleCounting reporting configuraiton

Provides the reporting configuration of ObjectingCounting

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurations": [
    ]
}

Set MultiLaneVehicleCounting reporting configuration

Configures the MultiLaneVehicleCounting reporting configuration, for supported values refer to multilanevehiclecounting/report/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (RuleReportingConfiguration)
Array
index
integer <int32> >= 1

rule index

reportEnable
boolean
reportFileName
string [ 1 .. 63 ] characters
reportFileType
string
object (ReportingSchedule)
scheduleType
string
weekDay
string
Enum: "SUN" "MON" "TUE" "WED" "THU" "FRI" "SAT"
hour
integer <int32> [ 0 .. 23 ]
minute
integer <int32> [ 0 .. 59 ]

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "reportingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get multilanevehicle counting reporting options

Provides the supported values and ranges for the multilanevehiclecounting reporting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurationOptions": [
    ]
}

Delete stored counting data

Clears the counting data that is stored.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Initiate multilanevehiclecounting search

Initiate the multilanevehiclecounting search based on search time duration and returns a search token

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

fromDate
required
string <date-time>

To filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
required
string <date-time>

To filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

Responses

Response samples

Content type
application/json
{
  • "searchToken": "SearchToken-122212"
}

Check the status of multilanevehiclecounting search

Search token can be used to check if the search status is complete.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
Example
{
  • "status": "Completed"
}

Cancel multilanevehiclecounting Search Session

Client can cancel an intiated search session using this method. Should pass a valid search token to cancel.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the search results

Once the search is complete, using the search token multilanevehiclecounting results can be retreived. In directionBasedResult json array reseponse, there is direction. As of not only "IN" is supported. For the "OUT" in the future.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

query Parameters
includeAIData
boolean

Optional field to request AI data in the result

Responses

Response samples

Content type
application/json
{
  • "resultInterval": "Hourly",
  • "countingRules": [
    ]
}

Check the current object count

Getting the live multilanevehicle counting data In directionBasedResult json array reseponse, there is direction. As of not only "IN" is supported. For the "OUT" in the future.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

index
integer <int32> >= 1

Optional counting rule index to get the result for the specified counting rule. If index is not specified, show all.

includeAIData
boolean

Optional field to request AI data in the result

Responses

Response samples

Content type
application/json
{
  • "countingLive": [
    ]
}

Commercial Vehicle Detection

Traffic pack only

Get commercial vehicle detection configurations

Get the commercial vehicle detection configurations. The commercial vehicle detection configurations, a device that indicates capability of commercialvehicledetection in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurations": [
    ]
}

Update commercial vehicle detection configurations

Update or enable the commercial vehicle detection configuration. a device that indicates capability of commercialvehicledetection in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (CommercialVehicleDetectionLineElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

mode
string
Enum: "LeftToRightIn" "RightToLeftIn"
Array of objects (CoordinatePoint) >= 2 items

Line coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 2 items)
x
required
integer <int32>
y
required
integer <int32>
objectTypes
Array of strings

optional object types, when set the rule will be active only for the configured object types

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "lines": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get commercial vehicle detection options

Provide allowed values of each parameters in the commercial vehicle detection configuration. Ranges of parameters in the commercial vehicle detection configuration, a device that indicates capability of commercialvehicledetection in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "options": [
    ]
}

Delete commercialvehicledetection line

Delete the lines based on requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Forklift Queue Management

Factory pack only

Get Forklift QueueManagement configuration

Gets the forklift queue qanagement configuration, suppport only if forkliftqueuemanagement capability is set to true. This configuration is specific to the forklift queue management.

ForkliftQueueMedium Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/ForkliftQueueMedium

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<ForkliftQueueMedium wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</ForkliftQueueMedium>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.ForkliftQueueMedium=True
Channel.0.OpenSDK.WiseAI.ForkliftQueueMedium.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.ForkliftQueueMedium=True
Channel.0.OpenSDK.WiseAI.ForkliftQueueMedium.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.ForkliftQueueMedium.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.ForkliftQueueMedium.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.ForkliftQueueMedium",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "ForkliftQueueMedium",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
    }
}

ForkliftQueueHigh Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/ForkliftQueueHigh

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<ForkliftQueueHigh wstop:topic="true">
  <tt:MessageDescription IsProperty="true">
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</ForkliftQueueHigh>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.ForkliftQueueHigh=True
Channel.0.OpenSDK.WiseAI.ForkliftQueueHigh.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.ForkliftQueueHigh=True
Channel.0.OpenSDK.WiseAI.ForkliftQueueHigh.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.ForkliftQueueHigh.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.ForkliftQueueHigh.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.ForkliftQueueHigh",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "ForkliftQueueHigh",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "State": true
    }
}

ForkliftQueueCountChanged Event

The ForkliftQueueCountChanged event is generated only in JSON schema format, this event occurs only when the Count value is changed. "Count" data in ONVIF/SUNAPI event is counted over 1 second, not cumulative value. Also, if you want to know the counting result for a specific period, check the contents of "search/forkliftqueuemanagement"

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/ForkliftQueueCountChanged

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<ForkliftQueueCountChanged wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSource" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="Count" Type="xsd:integer"/>
    </tt:Data>
  </tt:MessageDescription>
</ForkliftQueueCountChanged>

SUNAPI EVENT STATUS

SCHEMABASED

JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.ForkliftQueueCountChanged",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "ForkliftQueueCountChanged",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "Count": 3
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "queuemanagementConfigurations": [
    ]
}

Set Forklift QueueManagement configuration

Configures the forklift QueueManagement settings. For the supported values refer to forkliftqueuemanagement/options response.

  • NOTE: The count of queueLevelMedium is automatically set to half of the count value of queueLevelHigh. Therefore, even if you set the count value of queueLevelMedium, that value is ignored.
Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (QueueElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Queue Name

enable
boolean
maxCount
integer <int32>
Array of objects (CoordinatePoint) >= 4 items

Queue Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
object (QueueLevelConfiguration)
count
integer <int32>
enableEventNotification
boolean
duration
integer <int32>
object (QueueLevelConfiguration)
count
integer <int32>
enableEventNotification
boolean
duration
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "queues": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Forklift QueueManagement options

Provides the supported values and ranges for the Forklift QueueManagement configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "queuemanagementConfigurationOptions": [
    ]
}

Delete Forklift QueueManagement rule

Delete an queue area based on requested queue index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Forklift QueueManagement reporting configuraiton

Provides the reporting configuration of queuemanagement

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurations": [
    ]
}

Update Forklift QueueManagement reporting configuration

Configures the Forklift QueueManagement reporting configuration, for supported values refer to forkliftqueuemanagement/report/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (RuleReportingConfiguration)
Array
index
integer <int32> >= 1

rule index

reportEnable
boolean
reportFileName
string [ 1 .. 63 ] characters
reportFileType
string
object (ReportingSchedule)
scheduleType
string
weekDay
string
Enum: "SUN" "MON" "TUE" "WED" "THU" "FRI" "SAT"
hour
integer <int32> [ 0 .. 23 ]
minute
integer <int32> [ 0 .. 59 ]

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "reportingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Forklift QueueManagement reporting options

Provides the supported values and ranges for the Forklift QueueManagement reporting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurationOptions": [
    ]
}

Delete stored Forklift QueueManagement data

Clears the Forklift QueueManagement that is stored.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Initiate Forklift queuemanagement Search

Initiate the forklift queuemanagement search based on search time duration and returns a search token

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

fromDate
required
string <date-time>

To filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
required
string <date-time>

To filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

object (QueueSearchQueryObject)

Advanced result filtering based on queue name

Responses

Response samples

Content type
application/json
{
  • "searchToken": "SearchToken-122212"
}

Check the status of forklift queuemanagement search

Search token can be used to check if the search status is complete.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
Example
{
  • "status": "Completed"
}

Cancel Forklift Queuemanagement Search Session

Client can cancel an intiated search session using this method. Should pass a valid search token to cancel.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the search results

Once the search is complete, using the search token forklift queuemanagement results can be retreived.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "resultInterval": "Hourly",
  • "queues": [
    ]
}

Check the current queue count

Getting the live queue count

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

index
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Optional parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "queueCount": [
    ]
}

Forklift Heatmap

Factory pack only

Get Forklift configuration

Get the Forklift configuration, supported only if forkliftheatmap capability is set to true.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmapConfigurations": [
    ]
}

Update Forklift heatmap configuration

Configures the Forklift heatmap settings. For the supported values refer to forkliftheatmap/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
backgroundColorMode
string
enableManualReferenceMode
boolean
manualReference
integer <int32>
Array of objects (ExcludeAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Name of the exclude region

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "backgroundColorMode": "string",
  • "enableManualReferenceMode": true,
  • "manualReference": 0,
  • "excludeAreas": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Forklift heatmap options

Provides the supported values and ranges for the Forklift heatmap configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmapConfigurationOptions": [
    ]
}

Delete Forklift heatmap exclude area

Delete the excludearea based on the requested exclude area index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Forklift heatmap reporting configuraiton

Provides the reporting configuration of Forklift heatmap

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurations": [
    ]
}

Set Forklift heatmap reporting configuration

Configures the Forklift heatmap reporting configuration, for supported values refer to forkliftheatmap/report/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
Array of objects (RuleReportingConfiguration)
Array
index
integer <int32> >= 1

rule index

reportEnable
boolean
reportFileName
string [ 1 .. 63 ] characters
reportFileType
string
object (ReportingSchedule)
scheduleType
string
weekDay
string
Enum: "SUN" "MON" "TUE" "WED" "THU" "FRI" "SAT"
hour
integer <int32> [ 0 .. 23 ]
minute
integer <int32> [ 0 .. 59 ]

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "reportingRules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get Forklift heatmap reporting options

Provides the supported values and ranges for the Forklift heatmap reporting configuration.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "reportingConfigurationOptions": [
    ]
}

Delete stored Forklift heatmap data

Clears the Forklift heatmap that is stored.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Initiate forklift heatmap search

Initiate the forklift heatmap search based on search time duration and returns a search token

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

fromDate
required
string <date-time>

To filter results after the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

toDate
required
string <date-time>

To filter results till the specified date time, example format 2021-07-28T04:40:16Z, if suffix Z not specified will be considered as local time.

resultFormat
string
Enum: "Image" "Json"

Optional format parameter to get the search result in requested format. Default format is image.

resultImageType
string
Enum: "WithBackground" "WithoutBackground"
Example: resultImageType=WithBackground

Optional result Image type selection, if not passed WithBackground will be selected. It's used when the resultFormat paramter is image

Responses

Response samples

Content type
application/json
{
  • "searchToken": "SearchToken-122212"
}

Check the status of search

Search token can be used to check if the search status is complete.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
Example
{
  • "status": "Completed"
}

Cancel Search Session

Client can cancel an intiated search session using this method. Should pass a valid search token to cancel.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get the search results

Once the search is complete, using the search token forklift heatmap image can be downloaded.

Authorizations:
digestAuth
path Parameters
searchToken
required
string

search token received after initiating search

Responses

Response samples

Content type
application/json
{
  • "response": "Fail",
  • "error": {
    }
}

Check the current forklift heatmap levels

Getting the live forklift heatmap levels

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "heatmap": [
    ]
}

Forklift Speed Detection

Factory pack only

Get forklift speed detection configurations

Gets the forklift speed detection settings, suppport only if forkliftspeeddetection capability is set to true.

ForkliftSpeedDetection Event

ONVIF EVENT / META

Topic

tns1:OpenApp/WiseAI/ForkliftSpeedDetection

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<ForkliftSpeedDetection wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="Speed" Type="xsd:float"/>
      <tt:SimpleItemDescription Name="ObjectId" Type="xsd:integer"/>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
    </tt:Data>
  </tt:MessageDescription>
</ForkliftSpeedDetection>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.ForkliftSpeedDetection=True
Channel.0.OpenSDK.WiseAI.ForkliftSpeedDetection.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.ForkliftSpeedDetection=True
Channel.0.OpenSDK.WiseAI.ForkliftSpeedDetection.1.VideoSourceToken=VideoSourceToken-0
Channel.0.OpenSDK.WiseAI.ForkliftSpeedDetection.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.ForkliftSpeedDetection.1.Speed=3.5
Channel.0.OpenSDK.WiseAI.ForkliftSpeedDetection.1.ObjectId=1234
Channel.0.OpenSDK.WiseAI.ForkliftSpeedDetection.1.State=True
JSON RESPONSE
{
    "EventName": "OpenSDK.WiseAI.ForkliftSpeedDetection",
    "Time": "2022-03-15T02:58:52.820+00:00",
    "Source": {
        "Channel": 0,
        "AppName": "WiseAI",
        "AppID": "WiseAI",
        "AppEvent": "ForkliftSpeedDetection",
        "Type": "Event",
        "RuleIndex": 1,
        "VideoSourceToken": "VideoSourceToken-0",
        "RuleName": "rulename"
    },
    "Data": {
        "Speed": 3.5,
        "ObjectId": 1234,
        "State": true
    }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "forkliftSpeedDetection": [
    ]
}

Update forklift speed detection configurations

Configures the forklift speed detection settings, for supported values and ranges refer to forkliftspeeddetection/options response.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
integer <int32>
enable
boolean
distanceSpeedUnit
string
cameraHeight
number <double>

Camera height from floor (unit depends on distanceSpeedUnit setting)

tilt
number <double>
roll
number <double>
focalLength
number <double>
speed
number <double>

Speed of vehicle, if vehicles are moving above this speed event would be generated. Unit depends on distanceSpeedUnit parameter.

duration
integer <int32>

If vehicles are moving at configured speed for this duration, event is generated. Time is configured in seconds

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "distanceSpeedUnit": "string",
  • "cameraHeight": 0.1,
  • "tilt": 0.1,
  • "roll": 0.1,
  • "focalLength": 0.1,
  • "speed": 0.1,
  • "duration": 0
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get forklift speed detection options

Supported values and ranges reguired for configuring forklift speed detection is provided in response.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "detectionOptions": [
    ]
}

Sound Classification

Sound Classification pack only

Get sound classification configurations

Get the sound classification event configurations, a device that indicates capability of soundclassification in getcapability command shall support this command. When this soundclassification feature is enabled event will be delivered in following formats.

ONVIF EVENT / META

  • The DirectionAsRPY element in the event provides based on whether the hardware supports it

TOPIC

tns1:OpenApp/WiseAI/SoundClassification

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<SoundClassification wstop:topic="true" xmlns:tt="http://www.onvif.org/ver10/schema">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="AudioSource" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="ClassTypes" Type="tt:StringList"/>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="AudioURI" Type="xsd:anyUri"/>
      <tt:SimpleItemDescription Name="Score" Type="tt:FloatList"/>    // scores of detected sound classifications (normalized 0 ~ 1 as float)
      <tt:SimpleItemDescription Name="Loudness" Type="xsd:float"/>    // in dB
      <tt:SimpleItemDescription Name="DirectionAsRPY" Type="tt:FloatList"/>
    </tt:Data>
  </tt:MessageDescription>
</SoundClassification>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.SoundClassification=True
Channel.0.OpenSDK.WiseAI.SoundClassification.1=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.SoundClassification=True
Channel.0.OpenSDK.WiseAI.SoundClassification.1.AudioSource=AudioSourceToken-0
Channel.0.OpenSDK.WiseAI.SoundClassification.1.RuleName=RuleName1
Channel.0.OpenSDK.WiseAI.SoundClassification.1.ClassTypes=Scream GunShot GlassBreaking
Channel.0.OpenSDK.WiseAI.SoundClassification.1.State=True
Channel.0.OpenSDK.WiseAI.SoundClassification.1.AudioURI=/download/audio.wav
Channel.0.OpenSDK.WiseAI.SoundClassification.1.Score=0.5 0.2 0.3
Channel.0.OpenSDK.WiseAI.SoundClassification.1.Loudness=10
Channel.0.OpenSDK.WiseAI.SoundClassification.1.DirectionAsRPY=0.0 0.0 0.0
JSON RESPONSE
{
  "EventName": "OpenSDK.WiseAI.SoundClassification",
  "Time": "2021-10-27T07:36:14.509+00:00",
  "Source": {
    "Channel": 0,
    "AppName": "WiseAI",
    "AppEvent": "SoundClassification",
    "AppID": "WiseAI",
    "Type": "Event",
    "RuleIndex": 1,
    "AudioSource": "AudioSourceToken-0,
    "RuleName": "Rule1",
  },
  "Data": {
    "ClassTypes": "Scream GunShot GlassBreaking",
    "State": true,
    "AudioURI": "/download/audio.wav",
    "Score": "0.5 0.2 0.3",
    "Loudness": 10,
    "DirectionAsRPY": "0.0 0.0 0.0"
  }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurations": [
    ]
}

Update soundclassification configuration

object detecion setting, a device that indicates capability of soundclassification in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
noiseReduction
boolean

Whether to enable noise reduction

detectSoundDirection
boolean

Whether to detect sound direction. For support of this setting, refer to detectSoundDirectionSupport in options

thresholdLevel
integer <int32> [ 1 .. 100 ]
classTypes
Array of strings

List of classTypes to be detected, supported list is provided in options. Eg, Scream, Gunshot, GlassBreak etc.,

audioClipEnable
boolean

Whether to create an audio clip when an event occurs and serve it as an event

audioClipPreDuration
integer <int32>

Pre-duration (in seconds) of the audio clip generated when the event occurs

audioClipFileType
string

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "noiseReduction": true,
  • "detectSoundDirection": true,
  • "thresholdLevel": 1,
  • "classTypes": [
    ],
  • "audioClipEnable": true,
  • "audioClipPreDuration": 0,
  • "audioClipFileType": "string"
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get soundclassification options

Get the sound classification event configurations options, a device that indicates capability of soundclassification in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "configurationOptions": [
    ]
}

Check the current sound classification levels

Getting the sound classification levels

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

maxSamples
integer <int32> [ 1 .. 10 ]

Optional maximum samples

Responses

Response samples

Content type
application/json
{
  • "soundClassificationLevel": [
    ]
}

Motion Detection Area

AIBOX only

Get MotionDetectionArea configurations

Get the roi information based motion detection configurations. Area based motion detection configurations, a device that indicates capability of motiondetectionarea in getcapability command shall support this command. When this motiondetectionarea feature is enabled event will be delivered following below schema format.

ONVIF EVENT / META

SCHEMA Topic:

tns1:OpenApp/WiseAI/MotionDetectionArea

SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<MotionDetectionArea wstop:topic="true">
  <tt:MessageDescription>
    <tt:Source>
      <tt:SimpleItemDescription Name="VideoSourceToken" Type="tt:ReferenceToken"/>
      <tt:SimpleItemDescription Name="RuleName" Type="xsd:string"/>
    </tt:Source>
    <tt:Data>
      <tt:SimpleItemDescription Name="State" Type="xsd:boolean"/>
      <tt:SimpleItemDescription Name="Level" Type="xsd:integer"/>
    </tt:Data>
  </tt:MessageDescription>
</MotionDetectionArea>

SUNAPI EVENT STATUS

NORMAL TEXT RESPONSE

Channel.0.OpenSDK.WiseAI.MotionDetectionArea=True

SCHEMABASED

TEXT RESPONSE
Channel.0.OpenSDK.WiseAI.MotionDetectionArea=True
Channel.0.OpenSDK.WiseAI.MotionDetectionArea.1.VideoSourceToken=vs-0
Channel.0.OpenSDK.WiseAI.MotionDetectionArea.1.RuleName=Rule1
Channel.0.OpenSDK.WiseAI.MotionDetectionArea.1.State=True
Channel.0.OpenSDK.WiseAI.MotionDetectionArea.1.Level=15
JSON RESPONSE
{
  "EventName": "OpenSDK.WiseAI.MotionDetectionArea",
  "Time": "2021-10-27T07:36:14.509+00:00",
  "Source": {
    "Channel": 0,
    "AppName": "WiseAI",
    "AppID": "WiseAI",
    "AppEvent": "MotionDetectionArea",
    "Type": "Event",
    "RuleIndex": 1,
    "VideoSourceToken": "vs-0",
    "RuleName": "Rule1",
  },
  "Data": {
    "State": true
    "Level": 15
  }
}
Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "motionDetectionArea": [
    ]
}

Update Motion detection area configurations

Update or enable area based motion detection configuration. Area based configurations, a device that indicates capability of wisemdarea in getcapability command shall support this command.

Authorizations:
digestAuth
Request Body schema: application/json
required
channel
required
integer <int32>
enable
boolean
Array of objects (WiseMDAreaElement)
Array
index
required
integer <int32> >= 1
name
string [ 1 .. 63 ] characters

Rule name of this configuration

Array of objects (CoordinatePoint) >= 4 items

Area coordinates based on the maxresolution provided in capability, considering top-left as the origin.

Array (>= 4 items)
x
required
integer <int32>
y
required
integer <int32>
sensitivity
integer <int32> [ 1 .. 100 ]

Higher the number higher the sensitivity.

thresholdLevel
integer <int32> [ 1 .. 100 ]

ThresholdLevel.

duration
integer <int32> >= 0

minimum duration in secs refer to corresponding options for valid range.

objectTypeFilter
Array of strings

optional object type filter, when set the rule will be active only for the configured object types

Responses

Request samples

Content type
application/json
{
  • "channel": 0,
  • "enable": true,
  • "mdArea": [
    ]
}

Response samples

Content type
application/json
{
  • "response": "Success"
}

Get MD area options

Provide allowed values of each parameters in area based analytics configuration. Ranges of parameters in area based analytcis configuration, a device that indicates capability of ivaarea in getcapability command shall support this command.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

Responses

Response samples

Content type
application/json
{
  • "mdAreaOptions": [
    ]
}

Delete MD defined area

Delete the area for the requested index.

Authorizations:
digestAuth
query Parameters
channel
required
integer <int32>

Required channel parameter, operation is applicable only for the specified channel.

index
required
Array of integers <int32> non-empty [ items <int32 > >= 1 ]
Examples:
  • index=1 - Example when one index is passed
  • index=1,2 - Exmaple when muliple index is passed

Required parameter, used to set a specific index.

Responses

Response samples

Content type
application/json
{
  • "response": "Success"
}

Provide a set of current levels of motion detection

Provide a set of current levels of motion detection. Users can request numbers of levels to be recevied.

Authorizations:
digestAuth
query Parameters
channel
Array of integers <int32> non-empty [ items <int32 > ]
Examples:
  • channel=0 - Example when one channel is passed
  • channel=0,1 - Exmaple when muliple channel is passed

Optional channel parameter if passed, operation is applicable only for the specified channels.

mdAreaIndex
integer

Required rule index parameter, unique indentifier of the rule

numberOfSample
required
integer

Required number of sample parameter to be received.

Responses

Response samples

Content type
application/json
{
  • "motionDetectionAreaLive": [
    ]
}